用JavaScript实现导航菜单的高亮显示
[ 2009-05-05 03:23:42 | 责任编辑: admin ]
用JS实现导航菜单的高亮显示,感觉蛮有意思,也比较实用,像那种使用了母板页,菜单又很简单的页面也说,把这段代码加入到母板页在客户端就能实现菜单高亮显示。省去了在服务器端的处理。
<script language="javascript" type="text/javascript">
var tp;
var url = location.pathname+location.search; // 用来取当前页面的文件名+参数
var arr = new Array();
// 将导航菜单中的页面文件名存入arr数组
arr.push("CustomerService.aspx");
arr.push("常见问题.aspx");
arr.push("AboutAuth.aspx");
arr.push("StudyQnA.aspx");
arr.push("TeachQnA.aspx");
arr.push("OtherQnA.aspx");
arr.push("课件快车.aspx");
arr.push("课件演示.aspx");
arr.push("Tips.aspx");
arr.push("Notice.aspx");
arr.push("HelpCenterArticle.aspx");
arr.push("KnowIssue.aspx");
arr.push("GetHelp.aspx");
// 判断当前页面在数组中的位置
for(i=0;i<arr.length;i++)
{
if(url.lastIndexOf(arr[ i ]) > -1)
{
tp=i;
}
}
var dv = document.getElementById("LeftMenu");
// 将位于id=LeftMenu中的所有a标签都存入lk中
var lk = dv.getElementsByTagName("a");
// 改变当前所在菜单项的样式
for(i=0;i<lk.length;i++)
{
if(i == tp)
{
switch(i) {
case 2:
case 3:
case 4:
case 5:
case 7:
case 8:
case 9:
lk[ i ].style.fontWeight="bold";
lk[ i ].style.color="green";
lk[ 6 ].removeAttribute("href");
lk[ 6 ].className="thisMenu";
break;
case 0:
case 10:
case 11:
case 12:
lk[ i ].removeAttribute("href");
lk[ i ].className="thisMenu";
break;
case 1:
case 6:
lk[ i ].removeAttribute("href");
lk[ i ].className="thisMenu";
break;
}
}
}
</script>
分析:
因为在切换页面时,会有页面重载刷新,所以只用改变当前项的样式,如果在无刷新的页面中则需要判断i!=tp的情况,对菜单样式重值。
根据页面中菜单的Html代码的不同可以改变var lk = dv.getElementsByTagName("a")。
使用removeAttribute("href")是因为在IE中,a标签中如果href有值的话,className没有效果。
评论Feed: http://www.kupage.net/blog/feed.asp?q=comment&id=106
引用链接: http://www.kupage.net/blog/trackback.asp?id=106
<script language="javascript" type="text/javascript">
var tp;
var url = location.pathname+location.search; // 用来取当前页面的文件名+参数
var arr = new Array();
// 将导航菜单中的页面文件名存入arr数组
arr.push("CustomerService.aspx");
arr.push("常见问题.aspx");
arr.push("AboutAuth.aspx");
arr.push("StudyQnA.aspx");
arr.push("TeachQnA.aspx");
arr.push("OtherQnA.aspx");
arr.push("课件快车.aspx");
arr.push("课件演示.aspx");
arr.push("Tips.aspx");
arr.push("Notice.aspx");
arr.push("HelpCenterArticle.aspx");
arr.push("KnowIssue.aspx");
arr.push("GetHelp.aspx");
// 判断当前页面在数组中的位置
for(i=0;i<arr.length;i++)
{
if(url.lastIndexOf(arr[ i ]) > -1)
{
tp=i;
}
}
var dv = document.getElementById("LeftMenu");
// 将位于id=LeftMenu中的所有a标签都存入lk中
var lk = dv.getElementsByTagName("a");
// 改变当前所在菜单项的样式
for(i=0;i<lk.length;i++)
{
if(i == tp)
{
switch(i) {
case 2:
case 3:
case 4:
case 5:
case 7:
case 8:
case 9:
lk[ i ].style.fontWeight="bold";
lk[ i ].style.color="green";
lk[ 6 ].removeAttribute("href");
lk[ 6 ].className="thisMenu";
break;
case 0:
case 10:
case 11:
case 12:
lk[ i ].removeAttribute("href");
lk[ i ].className="thisMenu";
break;
case 1:
case 6:
lk[ i ].removeAttribute("href");
lk[ i ].className="thisMenu";
break;
}
}
}
</script>
分析:
因为在切换页面时,会有页面重载刷新,所以只用改变当前项的样式,如果在无刷新的页面中则需要判断i!=tp的情况,对菜单样式重值。
根据页面中菜单的Html代码的不同可以改变var lk = dv.getElementsByTagName("a")。
使用removeAttribute("href")是因为在IE中,a标签中如果href有值的话,className没有效果。
评论Feed: http://www.kupage.net/blog/feed.asp?q=comment&id=106
引用链接: http://www.kupage.net/blog/trackback.asp?id=106

杭州志高空调特约维修
杭州美的空调特约维修
杭州美的空调特约维修公司
杭州科龙空调特约维修公司
杭州三洋空调特约维修
杭州日立空调特约维修
杭州三菱空调特约维修
杭州春兰空调特约维修公司
杭州春兰空调特约维修公司
杭州美的空调特约维修中心
杭州长虹空调特约维修中心
杭州华凌空调特约维修
杭州美的空调特约维修
杭州科龙空调特约维修
杭州三洋空调特约维修
杭州日立空调特约维修
杭州新飞空调特约维修
杭州古桥空调特约维修
杭州三菱空调特约维修
杭州LG空调特约维修
杭州奥克斯空调特约维修
杭州富士通空调特约维修
杭州华凌空调特约维修
杭州美的空调特约维修
杭州科龙空调特约维修
杭州三洋空调特约维修
杭州三菱空调特约维修
杭州LG空调特约维修
杭州奥克斯空调特约维修
杭州富士通空调特约维修
杭州美的空调特约维修
杭州科龙空调特约维修
杭州三洋空调特约维修
杭州日立空调特约维修
杭州新飞空调特约维修
杭州古桥空调特约维修
杭州三菱空调特约维修
杭州LG空调特约维修
杭州奥克斯空调特约维修
杭州华凌空调特约维修
杭州美的空调特约维修
杭州科龙空调特约维修
杭州三洋空调特约维修
杭州日立空调特约维修
杭州古桥空调特约维修
杭州三菱空调特约维修
杭州LG空调特约维修
杭州奥克斯空调特约维修
杭州美的空调特约维修
杭州科龙空调特约维修
杭州日立空调特约维修
杭州LG空调特约维修
杭州奥克斯空调特约维修
杭州春兰空调特约维修
杭州搬家服务
杭州搬家价格
杭州上城区搬家
杭州下城区搬家
杭州拱墅区搬家
杭州西湖区搬家
杭州江干区搬家
杭州下沙搬家
杭州滨江搬家
浅一杭州搬家公司电话脚
吗杭州起重电话忽
然杭州起重公司电话一
脚杭州吊装电话踢
到杭州吊装公司电话一
包杭州起重东
西杭州吊装大
骂一杭州搬家标
出杭州城西搬家全国
各杭州长途搬家个机场的位