js控制导航菜单点击后的css效果

wjx0109 2012-06-12 03:20:52
问题是这样的,我在网上找了一个二级导航菜单,鼠标移动到菜单上的效果没问题,可是点击后进入链接导航有恢复初始状态了,我想让导航一直停留在导航进入的这个页面。

就是如图所示 进入“中文域名”页面之后导航一直停留在这种鼠标经过的状态,如果鼠标再在导航上其它位置滑过,效果也会跟着过去,但是鼠标离开导航之后效果还是回到当前页面鼠标停在相对导航上的位置,这样的效果,是应该有个js控制吧?应该怎么写呢?谢谢
导航代码如下:

<style>
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
#nav_wrap{margin:20px auto;}
#nav li{ text-align:center;font-size:12px;}

#nav_wrap { width:960px; overflow:hidden; }
#nav{ background:url(/jscss/demoimg/201011/nav_bg.gif) repeat-x; height:39px; position:relative; width:950px; margin:0 auto; }
#nav .l{ background:url(/jscss/demoimg/201011/navnbg.gif) no-repeat 0px 0px; height:39px; width:2px; float:left}
#nav .r{ background:url(/jscss/demoimg/201011/navnbg.gif) no-repeat -4px 0px; height:39px; width:2px; float:right}
#nav .bt_qnav { float:right; }
#nav .bt_qnav a{ width:31px; height:29px; line-height:39px;display:block;padding:9px 2px 0 0;}
#nav .c{ float:left;margin:0;padding:0}
#nav li { float:left; list-style:none; }
#nav li .v a{ width:83px;height:39px; line-height:33px; display:block; color:#FFF; background:url(/jscss/demoimg/201011/navnbg.gif) no-repeat -87px 6px; float:left; font-family:"Microsoft Yahei";}
#nav li .v a:hover,#nav li .v .sele{background:url(/jscss/demoimg/201011/navnbg.gif) no-repeat 0px -47px; color:#116406; line-height:42px; font-size:14px}
#nav .kind_menu { height:30px;*height:29px; line-height:30px;vertical-align:middle; position:absolute; top:37px;*top:39px; left:70px; width:880px; text-align:left; display:none; background:url(/jscss/demoimg/201011/nav_bg1.gif) repeat-x bottom; color:#656565; }
#nav .kind_menu a {color:#656565; float:left; text-align:center; width:90px; font-family:Arial, Helvetica, sans-serif;}
#nav .kind_menu a:hover { color:#ff4300; background:url(/jscss/demoimg/201011/navnbg.gif) no-repeat 1px -91px;*background:url(/jscss/demoimg/201011/navnbg.gif) no-repeat 1px -93px;}
#nav .kind_menu span { font-size:10px; color:#cecece; line-height:30px; *line-height:26px; float:left }
#tmenu{ background:url(/jscss/demoimg/201011/nav_bg1.gif) repeat-x bottom; height:28px; border-bottom:1px solid #eee; }
</style>
<SCRIPT src="/ajaxjs/jquery1.3.2.js" type="text/javascript"></SCRIPT>
</head>
<body style="text-align:center">

<DIV id=nav_wrap>
<DIV id=nav>
<DIV class=l></DIV>
<UL class=c>
<LI><SPAN class=v><A href="#" target="_blank">首页</A></SPAN>
<DIV class=kind_menu style="LEFT: 20px">欢迎访问美橙互联! </DIV></LI>
<LI><SPAN class=v><A href="#">特惠套餐</A></SPAN>
<DIV class=kind_menu style="LEFT: 40px"><A
href="#">电信套餐</A> <SPAN>|</SPAN> <A
href="#">双线套餐</A> </DIV></LI>
<LI><SPAN class=v><A href="#">域名频道</A></SPAN>
<DIV class=kind_menu><A href="#">英文域名</A>
<SPAN>|</SPAN> <A href="#">中文域名</A>
<SPAN>|</SPAN> <A href="#">通用网址</A> <SPAN>|</SPAN>
<A href="#">价格列表</A>
<SPAN>|</SPAN> <A href="#" target=_blank>域名交易</A>
<SPAN>|</SPAN> <A href="#">相关帮助</A>
<SPAN>|</SPAN> <A href="#">智能加速</A> </DIV></LI>
</UL>
<DIV class=r></DIV>
</DIV><!--nav-->
<DIV id=tmenu></DIV>
</DIV><!--nav_wrap-->
<SCRIPT type=text/javascript>
var site_url = window.location.href.toLowerCase();
switch (true) {
default :
$("#nav li").attr("class","");
$("#nav li").eq(0).attr("class","nav_lishw");
$(".nav_lishw .v a").attr("class","sele");
$(".nav_lishw .kind_menu").show();
}
$("#nav li").hover(
function(){
clearTimeout(setTimeout("0")-1);
$("#nav .kind_menu").hide();
$("#nav li .v .sele").attr("class","shutAhover");
$(this).attr("id","nav_hover")
$("#nav_hover .v a").attr("class","sele");
$("#nav_hover .kind_menu").show();
},
function(){

if($(this).attr("class") != "nav_lishw"){
$("#nav_hover .v .sele").attr("class","");
$("#nav_hover .kind_menu").hide();
}
$(this).attr("id","")
$("#nav li .v .shutAhover").attr("class","sele");
setTimeout(function(){
$(".nav_lishw .kind_menu").show();
$(".nav_lishw .v a").attr("class","sele");
},50);
}
);

</SCRIPT>
...全文
695 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
木有前途 2013-12-30
  • 打赏
  • 举报
回复
这个我似乎也在找。占楼保存一下。
isurgit 2012-06-22
  • 打赏
  • 举报
回复
这个我似乎也在找。占楼保存一下。
包菜大GG 2012-06-22
  • 打赏
  • 举报
回复
这个我似乎也在找。占楼保存一下。
木有前途 2012-06-22
  • 打赏
  • 举报
回复
<style type="text/css">
02 .no_tdn{text-decoration:none;}
03 .current{color:#FFFF00;}
04 .white{color:#fff;}
05 .fb{font-weight:bold;}
06 .ff{font-family:"黑体";}
07 .fl{float:left;display:inline;}
08 #menu{background-color:green;width:920px;height:39px;}
09 #menu li{height:29px;line-height:29px;width:102px;text-align:center;}
10 #menu li a:hover,#menu li a:active{color:#FFFF00;}
11 .front_after_login li{margin:5px 0 0 42px;}
12 </style>
01 <div id="menu" class="cl">
02 <ul class="front_after_login">
03 <li class="fl"><a href="index.jsp" class="no_tdn white fb"><span class="ff">·</span>源码首页</a></li>
04 <li class="fl"><a href="#" class="no_tdn white fb"><span class="ff">·</span>ASP源码</a></li>
05 <li class="fl"><a href="#" class="no_tdn white fb"><span class="ff">·</span>PHP源码</a></li>
06 <li class="fl"><a href="#" class="no_tdn white fb"><span class="ff">·</span>JSP源码</a></li>
07 <li class="fl"><a href="#" class="no_tdn white fb"><span class="ff">·</span>JQuery特效</a></li>
08 <li class="fl"><a href="#" class="no_tdn white fb"><span class="ff">·</span>软件下载</a></li>
09 </ul>
10 </div>

jquery控制菜单高亮显示
1 $(document).ready(function(){
2 $("#menu li").click(function(){
3 $("#menu li").find("a").removeClass("current").addClass("white");//首先移除全部的current
4 var $aobj=$(this).find("a");
5 $aobj.removeClass("white").addClass("current");
6 });
7 });

js控制菜单高亮显示
01 var menu=document.getElementById("menu");
02 var as=menu.getElementsByTagName("a");//得到menu所有的a标签
03 window.onload=function(){
04 for(var i=0;i<as.length;i++){
05 as[i].onclick=function(){
06 aonclick(this);
07 }
08 }
09 }
10 function aonclick(obj){
11 for(var j=0;j<as.length;j++){
12 if(as[j]==obj){//点击的是当前的a标签
13 as[j].className="no_tdn current fb";
14 }else{
15 as[j].className="no_tdn white fb";
16 }
17 }
18 }

前两种方法在页面刷新的情况下高亮消失,在引用的时候有限制,推荐一种防刷新导航菜单的方法:
01 window.onload=function menuFix(){
02 var strUrl,strHref;
03 var Navs=document.getElementById("menu").getElementsByTagName("a");
04 // 如果链接没有参数,或者URL链接中不存在我们要获取的参数,则返回数组中的序号
05 strUrl=location.href.substring(location.href.lastIndexOf("/")+1);//取得URL页面名称
06 for (var i = 0; i < Navs.length; i++) {
07 strHref=Navs[i].getAttribute("href").substring(Navs[i].getAttribute("href").lastIndexOf('/')+1);
08 //在IE6,IE7中strHref获得的是全路径,而在IE8和ff中获得的是页面名称,为了兼容,需要将它的字符串进行拆分/
09 if(strUrl==strHref){//高亮当前菜单
10 Navs[i].className = "no_tdn current fb";
11 }else{
12 Navs[i].className = "no_tdn white fb";
13 }
14 }
15 }
wjx0109 2012-06-12
  • 打赏
  • 举报
回复
导航在header.php里面 每个页面都是<?php include 'inc/head.php'; ?> 是不是这种情况就实现不了我想要的效果呢?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧