今天我們來介紹一款使用JavaScript制作響應式單頁側邊欄導航菜單,該菜單具有隱藏展開、點擊漢堡圖標側邊菜單滑動收縮展開或隱藏效果。下面就讓我們一起來詳細了解這個功能。
簡潔的界面設計
這個菜單采用了簡潔的設計風格,只有一個漢堡圖標和一個側邊欄導航菜單,不會給用戶帶來過多的干擾。同時,菜單的顏色也很清爽,符合現代化網站的設計風格。
隱藏展開效果
當用戶進入網站時,菜單默認是隱藏的,只有在點擊漢堡圖標后才會展開。這種隱藏展開的效果,在一定程度上可以避免頁面過于擁擠,以及降低用戶的信息負荷。
為了實現這個效果,我們需要使用JavaScript。代碼如下:
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
burger.addEventListener('click', () => {
nav.classList.toggle('nav-active');
});
}
navSlide();
通過querySelector函數選擇漢堡圖標和側邊欄導航菜單,并添加一個監聽器,當用戶點擊漢堡圖標時,會將導航菜單的class屬性值修改為nav-active。同時,我們還需要在CSS文件中定義類nav-active的樣式。
.nav-links {
position: absolute;
right: 0px;
height: 92vh;
top: 8vh;
background-color: #333;
display: flex;
flex-direction: column;
align-items: center;
width: 0%;
transition: all 0.5s ease;
}
.nav-active {
width: 50%;
}
其中,nav-links是側邊欄導航菜單的容器類名,nav-active是控制寬度變化的類名。通過將nav-links的初始寬度設為0,當用戶點擊漢堡圖標后,使用類nav-active將寬度設為50%,實現了側邊欄導航菜單的展開效果。
滑動收縮效果
除了隱藏展開效果外,該菜單還有一種滑動收縮效果,在用戶瀏覽頁面時,可以保留一定的導航功能,但不會占用太多屏幕空間。下面是實現這個效果的JavaScript代碼:
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
const navLinks = document.querySelectorAll('.nav-links li');
burger.addEventListener('click', () => {
nav.classList.toggle('nav-active');
navLinks.forEach((link, index) => {
if(link.style.animation){
link.style.animation = '';
}else{
link.style.animation = `navLinkFade 0.5s ease forwards ${index / 7 + 0.3}s`;
}
});
burger.classList.toggle('toggle');
});
}
navSlide();
在這段代碼中,我們添加了一個循環來處理每個導航鏈接。當用戶點擊漢堡圖標時,通過遍歷所有導航鏈接的類名,設置它們的animation屬性,以實現滑動效果。
同時,在CSS文件中我們還需要定義每個鏈接的動畫樣式:
.nav-links li {
opacity: 0;
}
.nav-active li {
opacity: 1;
}
@keyframes navLinkFade {
from{
opacity: 0;
transform: translateX(50px);
}
to{
opacity: 1;
transform: translateX(0px);
}
}
其中,nav-links li是導航鏈接的類名,nav-active li是控制透明度變化的類名,@keyframes navLinkFade是定義動畫的關鍵幀。
通過這些代碼和樣式,我們可以實現帶有滑動效果的側邊欄導航菜單。當用戶點擊漢堡圖標時,鏈接會從右側平移進入屏幕,并隨著時間的推移逐漸變得透明。反之,如果用戶再次點擊漢堡圖標,則導航鏈接會向右平移并逐漸消失。
使用JavaScript制作簡潔的單頁側邊欄導航菜單隱藏展開,點擊漢堡圖標側邊菜單滑動收縮展開或隱藏效果,可以提高網站的良好性能和用戶體驗。本文通過代碼和樣式的詳細解釋,希望能夠為大家提供一些參考,幫助大家更好地理解和應用這個功能。