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

这是我初步写的一个...我的jquery很烂....不知道该怎样写,求帮助<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitio... 这是我初步写的一个...我的jquery很烂....不知道该怎样写,求帮助

<!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 scroH = $(window).scrollTop();
if(scroH>=navH1)
{
$(".dh1 a").addClass('act')
}
if(scroH>=navH2)
{
$(".dh2 a").addClass('act')
}

})
})
// ]]></script>
<style>
a.act{ color:#CCC;}
</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>
当过了dh1的时候,侧导航的dh1加上act,当过了dh2的时候,dh2就加上act....以此类推下去...
展开
 我来答
打印你的心88
2013-07-08
知道答主
回答量:6
采纳率:0%
帮助的人:5.5万
展开全部

修改这段代码

var navH1 = $("#dh1").offset().top;
var navH2 = $("#dh2").offset().top;
var scroH = $(document).scrollTop();
if (scroH >= navH1 ) {
    $(".dh1 a").addClass('act')
} else {
    $(".dh1 a").removeClass('act')
}
if (scroH >= navH2 ) {
    $(".dh2 a").addClass('act')
}else {
    $(".dh2 a").removeClass('act')
}
追问
我明白修改这段代码...因为现在只有5个,后期可能增加,可能到10个...如果每个去判断..很麻烦...有没有什么办法可以循环一下...我jquery太烂..只能写到这里....
追答
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')
}
})

试试

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式