在页面的代码为
<div 导航部分>
<ul><li id=1 class>
</li>
<li id=2 class>
</li>
....
</ul>
<div>列面部分
<div id=001>
...内容
<div id=002>
.......略当滚动条滚动到页面中的《div id=001》的时候<li id=1 class添加class=AA 当滚动到页面中div id=002 的时候<li id=2 class添加class=BB,并且<li id=1 去掉class,依次退类,这样的js代码怎么写啊?
求个完整代码,谢谢

解决方案 »

  1.   

    问一下,1、你这个给你用jquery写行么?
    2、你这个添加的那个class AA BB 之类的,是同一个class么,如果不是,那么一个个指定就不好办了。或者命名有规律也成。
      

  2.   


    jquery写可以的
    class不是同一个,换句话说当滚动条到页面中div=001时候,li第一条加入class=AA,当滚动到页面DIV=002时候,li第二条添加class=AA。第一条li移除class。循环...
      

  3.   


    $(document).ready(function() {
        var posArr = [];
    var navArr = $("ulID li"); //自己改ID
    var currIndex = -1;
    var styleName = "AA"; //自己改样式名
        var initTop = $(document).scrollTop();

        $("#001, #002, #003").each(function() { //自己加ID
            posArr.push($(this).offset().top + initTop);
        });
    $(window).scroll(scroller);
    scroller();

        function scroller() {
            var top = $(document).scrollTop();
            var index = -2;
    $.each(posArr, function(i, s) {
    if(top < s) {
    index = i - 1;
    return false;
    }
    });
    if(index == -2) {
    index = posArr.length - 1; 
    }
    if(index != currIndex) {
    if(currIndex >= 0) {
    navArr.eq(currIndex).removeClass(styleName);
    }
    if(index >= 0) {
    navArr.eq(index).addClass(styleName);
    }
    currIndex = index;
    }
        }    
    }); 直接写的,不保证无BUG