如何用JS实现当前导航菜单高亮显示
为了增加用户体验度,增加网页的易用性和美观度,往往需要把当前导航菜单以特殊方式显示,通常是高亮显示或有不同于其它菜单的背景,有两种方法可以实现,第一种是用纯css来实现,二是用js辅助css来实现,两个种方法都比较简单,相对而言js更简单些,下面介绍用js来实现的方法:
首页假设我们的导航代码是这样写的:
-
- <div id="navi">;
- <ul>;
- <li>;<a href="1.html">;主页</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>;
复制代码
复制这段js代码加到body里。注意:
1.getElementById("navi");这一句括号里的navi必须与 ;里的navi一致。
2.js代码必须加到body里,即加到导航的下面,不能加到head里,否则出错不能使用。
3.links[last].className = "hl";中的hl是高亮代码的样式类名。
最后再写一下高亮的css代码就可以了,如下:
#navi ul li.hl a{
color:#123456;
}
这样就实现当前导航菜单高亮显示了。
links[last].className = "hl"; 在 li 高亮
lilen[last].className = "hl"; 在 a 连接高亮
|