為了增加用戶(hù)體驗(yàn)度,增加網(wǎng)頁(yè)的易用性和美觀度,往往需要把當(dāng)前導(dǎo)航菜單以特殊方式顯示,通常是高亮顯示或有不同于其它菜單的背景,有兩種方法可以實(shí)現(xiàn),第一種是用純css來(lái)實(shí)現(xiàn),二是用js輔助css來(lái)實(shí)現(xiàn),兩個(gè)種方法都比較簡(jiǎn)單,相對(duì)而言js更簡(jiǎn)單些,下面介紹用js來(lái)實(shí)現(xiàn)的方法:
首頁(yè)假設(shè)我們的導(dǎo)航代碼是這樣寫(xiě)的:
<div id="navi">
<ul>
<li><a href="1.html">主頁(yè)</a></li>
<li><a href="2.html">欄目1</a></li>
</ul>
</div>
下面是js代碼:
<script type="text/javascript" language="javascript">
var nav = document.getElementById("navi");
var links = nav.getElementsByTagName("li");
var lilen = nav.getElementsByTagName("a");
var currenturl = document.location.href;
var last = 0;
for (var i=0;i<links.length;i++)
{
var linkurl = lilen[i].getAttribute("href");
if(currenturl.indexOf(linkurl)!=-1)
{
last = i;
}
}
links[last].className = "hl";
</script>
復(fù)制這段js代碼加到body里。注意:
1.getElementById("navi");這一句括號(hào)里的navi必須與<div id="navi">里的navi一致。
2.js代碼必須加到body里,即加到導(dǎo)航的下面,不能加到head里,否則出錯(cuò)不能使用。
3.links[last].className = "hl";中的hl是高亮代碼的樣式類(lèi)名。
最后再寫(xiě)一下高亮的css代碼就可以了,如下:
#navi ul li.hl a{
color:#123456;
}
這樣就實(shí)現(xiàn)當(dāng)前導(dǎo)航菜單高亮顯示了。