jquery侧导航问题,判断div是否到了浏览器顶部,如果到了顶部,侧导航就加上act class

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title></title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var navH1 = $("#dh1").offset().top;
navH2 = $("#dh2").offset().top;
$(window).scroll(function(){
var tops = $(".tu");
var scroH = $(document).scrollTop();
tops.each(function(){
var top = $(this).offset().top;
var IdString = $(this).attr("id");
if (scroH >= top ) {

$("."+IdString+" a").addClass('act')
} else {
$("."+IdString+" a").removeClass('act')
}
})
})
})// ]]>
</script>
<style>
a.act{ color:#CCC;}
.tu{ height:470px; overflow:hidden;}
</style>
</head>
<body>
<div class="tu" id="dh1"> 这里是一个锚链接</div>
这里是导航1模块有各种内容
<div class="tu" id="dh2"> 这里是内容2</div>
这里是导航2模块有各种内容
<div class="tu" id="dh2"> 这里是内容3</div>
这里是导航3模块有各种内容
<div class="tu" id="dh2"> 这里是内容4</div>
这里是导航4模块有各种内容<
div class="tu" id="dh2"> 这里是内容5</div>
这里是导航5模块有各种内容
<div style="position:fixed; right:0; top:50px;">
<ul>
<li class="dh1"><a href="#dh1">第1个导航</a></li>
<li class="dh2"><a href="#dh2">第2个导航</a></li>
<li class="dh3"><a href="#">第3个导航</a></li>
<li class="dh4"><a href="#">第4个导航</a></li>
<li class="dh5"><a href="#">第5个导航</a></li>
</ul>
</div>
</body>
</html>
之前看您解决过次问题,我复制到页面里,可是没有实现效果,麻烦帮我看下吧,急,非常感谢!
展开
 我来答
匿名用户
2013-11-29
展开全部

你描述的应该是当前div已经滚动到页面顶部的时候加上act样式吧。就是变灰了。

稍等下。。

那位哥们也说出了你这个id重复的问题。另外,我也给改了一下js,这样就不需要考虑id的问题了

$(function(){
 var navH1 = $("#dh1").offset().top;
 navH2 = $("#dh2").offset().top;
 $(window).scroll(function(){
 var tops = $(".tu"); 
 var scroH = $(document).scrollTop(); 
 tops.each(function(){ 
var top = $(this).offset().top; 
if (scroH >= top ) { 
$("ul").children("li").eq($(this).index()).find("a").addClass('act') ;
 } else { 
$("ul").children("li").eq($(this).index()).find("a").removeClass('act') ;
 } 
})  
})
})
追问
解决了,非常感谢!
纲凝旋9e
2013-11-29 · TA获得超过146个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:123万
展开全部
<div class="tu" id="dh1"> 你下面的ID都是dh2,导航的class是1,2,3,4,5当然只变第一个啊。
太粗心了吧
给最佳答案吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式