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....以此类推下去... 展开
<!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....以此类推下去... 展开
1个回答
展开全部
修改这段代码
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')
}
})
试试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询