为了账号安全,请及时绑定邮箱和手机立即绑定
window.onload=function(){
window.onscroll=function(){
var top=document.documentElement.scrollTop||document.body.scrollTop;
var menus=document.getElementById("menu").getElementsByTagName("a");
var items=getByClassName(document.getElementById("content"),"item");
var currentId="";
for(var i=0; i<items.length; i++){
var _item=items[i];
var _itemTop=_item.offsetTop;
if(top>_itemTop-300){
currentId=_item.id;
}else{
break;
}
}
if(currentId){
for(var j=0; j<menus.length; j++){
var _menu=menus[j];
var _href=_menu.href.split("#");
if(_href[_href.length-1]!=currentId){
removeClass(_menu,"current");
}else{
addClass(_menu,"current");
}
}
}
}
}
<div id="menu">
<ul>
<li>
<a href="#item1" class="current">1F 男装</a>
</li>
<li>
<a href="#item2">2F 女装</a>
</li>
<li>
<a href="#item3">3F 美妆</a>
</li>
<li>
<a href="#item4">4F 数码</a>
</li>
<li>
<a href="#item5">5F 母婴</a>
</li>
</ul>
</div>
#menu {
position: fixed;
top: 100px;
left: 50%;
margin-left: 400px;
width: 50px;
}
<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function(){
var items = $("#content").find(".item");
var menu = $("#menu");
var top = $(document).scrollTop();
var currentId = "";
items.each(function(){
var m = $(this);
if(top > m.offset().top - 300){
currentId = "#" + m.attr("id");
}else{
return false;
}
});
var currentLink = menu.find(".current");
if(currentId && currentLink.attr("href") != currentId){
currentLink.removeClass("current");
menu.find("[href='" + currentId + "']").addClass("current");
}
});
});
</script>
<div id="menu">
<ul>
<li>
<a href="#item1" class="current">1F 男装</a>
</li>
<li>
<a href="#item2">2F 女装</a>
</li>
<li>
<a href="#item3">3F 美妆</a>
</li>
<li>
<a href="#item4">4F 数码</a>
</li>
<li>
<a href="#item5">5F 母婴</a>
</li>
</ul>
</div>

已采纳回答 / 夜莺z
<div id="menu"><ul><!--运用锚点,实现导航定位。--><li><a href="#" class="current">1F 男装</a></li><li><a href="#">2F 女装</a></li><li><a href="#">3F 美妆</a></li><li><a href=...

最赞回答 / 夜莺z
我找到问题了,引用的jq文件不对。。。。。。。
老师讲的真棒,感谢!
建议把代码复制到其他位置测试。。说真的,在这里看滚动改变className的效果看不到。

已采纳回答 / 慕粉1711228114
如果你是在做练习题,还要检查把html里面的menu下面a的href="#"对应锚点补充上去,给最佳啊,积分也不知道拿来干嘛的
课程须知
学习本课程之前,您需要具备HTML、CSS、JavaScript、jQuery几个方面的基础知识。
老师告诉你能学到什么?
如何使用jQuery、JavaScript两种方式实现网页定位导航,提升HTML、CSS、JavaScript、jQuery的综合应用能力。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消