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>
之前看您解决过次问题,我复制到页面里,可是没有实现效果,麻烦帮我看下吧,急,非常感谢! 展开
<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>
之前看您解决过次问题,我复制到页面里,可是没有实现效果,麻烦帮我看下吧,急,非常感谢! 展开
2个回答
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') ;
}
})
})
})
追问
解决了,非常感谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询