隨著互聯(lián)網(wǎng)的不斷發(fā)展和更新,網(wǎng)站作為重要的信息傳遞和交流平臺(tái)得到了廣泛的應(yīng)用。然而,網(wǎng)站讓用戶感到舒適和愉悅的視覺效果也是非常重要的一個(gè)方面,其中導(dǎo)航特效尤為重要。而Javascript是我們實(shí)現(xiàn)這一目標(biāo)的利器之一。
在Javascript中,導(dǎo)航特效主要由以下幾種實(shí)現(xiàn)方式:
1. 懸浮特效:當(dāng)鼠標(biāo)移動(dòng)到導(dǎo)航項(xiàng)目上時(shí),導(dǎo)航項(xiàng)會(huì)出現(xiàn)相應(yīng)的特效,如變色、放大、縮小等,給用戶一種互動(dòng)體驗(yàn)的感覺。
在上述的代碼中,我們先獲取到id為navbar的導(dǎo)航條以及其下的所有l(wèi)i標(biāo)簽,然后用for循環(huán)為每一個(gè)li標(biāo)簽綁定兩個(gè)事件:當(dāng)鼠標(biāo)移動(dòng)到該li標(biāo)簽上時(shí),該標(biāo)簽的背景色即會(huì)變成紅色;當(dāng)鼠標(biāo)移開該標(biāo)簽時(shí),該標(biāo)簽的背景色恢復(fù)為白色。
2. Tab選項(xiàng)卡效果:我們通常可以將導(dǎo)航條設(shè)計(jì)成Tab選項(xiàng)卡的形式,當(dāng)用戶點(diǎn)擊某個(gè)選項(xiàng)卡時(shí),相應(yīng)的頁面內(nèi)容會(huì)顯示出來,提高了用戶使用網(wǎng)站的效率。
在上述代碼中,我們同樣先獲取到id為tab的導(dǎo)航條以及其下的所有l(wèi)i標(biāo)簽,同時(shí)也獲取id為tabcon的內(nèi)容容器下的所有div標(biāo)簽。然后用for循環(huán)為每一個(gè)li標(biāo)簽綁定點(diǎn)擊事件,并且使得該標(biāo)簽的class名變?yōu)閍ctive,同時(shí)顯示對應(yīng)的內(nèi)容div,其余的li標(biāo)簽的class名還原為"",對應(yīng)的內(nèi)容div隱藏起來。
3. 下拉菜單特效:這種導(dǎo)航特效也是非常常見的,在鼠標(biāo)移動(dòng)到主菜單選項(xiàng)上時(shí),會(huì)自動(dòng)彈出對應(yīng)的子菜單。
在上述代碼中,我們獲取到id為menu的導(dǎo)航條以及其下的所有l(wèi)i標(biāo)簽,在每個(gè)li標(biāo)簽上綁定移動(dòng)鼠標(biāo)進(jìn)入該標(biāo)簽時(shí)顯示對應(yīng)的子菜單,移開鼠標(biāo)時(shí)子菜單消失的事件。其中注意,由于每個(gè)li標(biāo)簽下的子菜單是一個(gè)ul標(biāo)簽,我們需要用getElementsByTagName獲取li標(biāo)簽下的第一個(gè)ul標(biāo)簽。
以上就是Javascript中常見的導(dǎo)航特效方式,對于不同的網(wǎng)站需求和設(shè)計(jì)目的,我們可以選擇不同的方式來實(shí)現(xiàn)。其中最關(guān)鍵的是我們需要深入理解Javascript的基礎(chǔ)語法,和JS可以調(diào)用的各種DOM元素方法,才能靈活運(yùn)用這些方式實(shí)現(xiàn)我們想要的效果。
在Javascript中,導(dǎo)航特效主要由以下幾種實(shí)現(xiàn)方式:
1. 懸浮特效:當(dāng)鼠標(biāo)移動(dòng)到導(dǎo)航項(xiàng)目上時(shí),導(dǎo)航項(xiàng)會(huì)出現(xiàn)相應(yīng)的特效,如變色、放大、縮小等,給用戶一種互動(dòng)體驗(yàn)的感覺。
window.onload=function(){ var navbar=document.getElementById("navbar"); var navli=navbar.getElementsByTagName("li"); for (var i=0; i<navli.length; i++){ navli[i].onmouseover=function(){ this.style.backgroundColor="#f00"; }; navli[i].onmouseout=function(){ this.style.backgroundColor="#fff"; }; } };
在上述的代碼中,我們先獲取到id為navbar的導(dǎo)航條以及其下的所有l(wèi)i標(biāo)簽,然后用for循環(huán)為每一個(gè)li標(biāo)簽綁定兩個(gè)事件:當(dāng)鼠標(biāo)移動(dòng)到該li標(biāo)簽上時(shí),該標(biāo)簽的背景色即會(huì)變成紅色;當(dāng)鼠標(biāo)移開該標(biāo)簽時(shí),該標(biāo)簽的背景色恢復(fù)為白色。
2. Tab選項(xiàng)卡效果:我們通常可以將導(dǎo)航條設(shè)計(jì)成Tab選項(xiàng)卡的形式,當(dāng)用戶點(diǎn)擊某個(gè)選項(xiàng)卡時(shí),相應(yīng)的頁面內(nèi)容會(huì)顯示出來,提高了用戶使用網(wǎng)站的效率。
window.onload=function(){ var tab=document.getElementById("tab"); var tabli=tab.getElementsByTagName("li"); var tabcon=document.getElementById("tabcon"); var tabbox=tabcon.getElementsByTagName("div"); for (var i=0; i<tabli.length; i++){ tabli[i].index=i; tabli[i].onclick=function(){ for (var j=0; j<tabli.length; j++){ tabli[j].className=""; tabbox[j].style.display="none"; } this.className="active"; tabbox[this.index].style.display="block"; }; } };
在上述代碼中,我們同樣先獲取到id為tab的導(dǎo)航條以及其下的所有l(wèi)i標(biāo)簽,同時(shí)也獲取id為tabcon的內(nèi)容容器下的所有div標(biāo)簽。然后用for循環(huán)為每一個(gè)li標(biāo)簽綁定點(diǎn)擊事件,并且使得該標(biāo)簽的class名變?yōu)閍ctive,同時(shí)顯示對應(yīng)的內(nèi)容div,其余的li標(biāo)簽的class名還原為"",對應(yīng)的內(nèi)容div隱藏起來。
3. 下拉菜單特效:這種導(dǎo)航特效也是非常常見的,在鼠標(biāo)移動(dòng)到主菜單選項(xiàng)上時(shí),會(huì)自動(dòng)彈出對應(yīng)的子菜單。
window.onload=function(){ var menu=document.getElementById("menu"); var menuli=menu.getElementsByTagName("li"); for (var i=0; i<menuli.length; i++){ menuli[i].onmouseover=function(){ var submenu=this.getElementsByTagName("ul")[0]; submenu.style.display="block"; }; menuli[i].onmouseout=function(){ var submenu=this.getElementsByTagName("ul")[0]; submenu.style.display="none"; }; } };
在上述代碼中,我們獲取到id為menu的導(dǎo)航條以及其下的所有l(wèi)i標(biāo)簽,在每個(gè)li標(biāo)簽上綁定移動(dòng)鼠標(biāo)進(jìn)入該標(biāo)簽時(shí)顯示對應(yīng)的子菜單,移開鼠標(biāo)時(shí)子菜單消失的事件。其中注意,由于每個(gè)li標(biāo)簽下的子菜單是一個(gè)ul標(biāo)簽,我們需要用getElementsByTagName獲取li標(biāo)簽下的第一個(gè)ul標(biāo)簽。
以上就是Javascript中常見的導(dǎo)航特效方式,對于不同的網(wǎng)站需求和設(shè)計(jì)目的,我們可以選擇不同的方式來實(shí)現(xiàn)。其中最關(guān)鍵的是我們需要深入理解Javascript的基礎(chǔ)語法,和JS可以調(diào)用的各種DOM元素方法,才能靈活運(yùn)用這些方式實(shí)現(xiàn)我們想要的效果。