Pengweb
2015-03-20 15:38
<script type="text/javascript">
$(document).ready(function () {
$(window).scroll(function () {
var items = $("#content").find(".item");
var menu = $("#menu");
var top = $(document).scrollTop();
var currentId; //滚动条现在所在位置的item id
items.each(function () {
var m = $(this);
//注意:m.offset().top代表每一个item的顶部位置
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>
其中currentId为什么不能直接通过currentId="#"+m.attr("id");来获得呢,还非要进行遍历呢?这里的m就是this,这个this难道不能取到值吗
items.each(function () {
var m = $(this);
这里的this是动态变化的,你遍历是为了比较top与scrollTop从而找出想要的currentId,所以必须遍历
网页定位导航特效
71404 学习 · 486 问题
相似问题