解决方案 »

  1.   

    好多没必要的代码。。╮(╯▽╰)╭。。你的setInterval 1s执行了1000次,我那个汗。。绑定scroll事件就好了
        function show() {
            var init_top = 460; //第一个列表距离body的高度
            var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
            //var top = $(document).scrollTop() + init_top; //列表上部距离body的高度
            var top = scrollTop + init_top;
            var top_temp; //高度区间
            var i; //列表下标
            //列表高度所在区间用top_temp来分别表示
            if (top > 460 && top < 510) {
                top_temp = 1;
            } else if (top > 530 && top < 580) {
                top_temp = 2;
            } else if (top > 600 && top < 650) {
                top_temp = 3;
            } else if (top > 670 && top < 720) {
                top_temp = 4;
            } else if (top > 740 && top < 790) {
                top_temp = 5;
            } else if (top > 810 && top < 860) {
                top_temp = 6;
            } else if (top > 880 && top < 930) {
                top_temp = 7;
            } else if (top > 950 && top < 1000) {
                top_temp = 8;
            } else {
                top_temp = 0;
            }
            showList(top_temp == 0 ? -1 : top_temp - 1);
            $("#show").text(top + "  " + top_temp);
        }    //滚动到哪就显示哪一列
        function showList(i_temp) {
            if (i_temp == -1) $('.xyz_live li').removeClass("current");
            else $(".xyz_live li:eq(" + i_temp + ")").addClass("current");
        }    $(window).scroll(show);////////////
      

  2.   

    JQUERY.MOUSEWHELL 这个插件可以满足你的要求,直接调用API获得坐标,根据坐标修改CSS样式
    希望可以帮到你