日期:2014-05-17  浏览次数:20672 次

ie8onScroll事件多次激活问题


<script>
var s=0;
$(document).ready(function(){
    $(window).scroll(function(){
        var t=$(window).scrollTop();
        setTimeout(function(){
            if(t!=2000){
                $("#msg").html(++s);
                $(window).scrollTop(2000);
            }
        },1000);
    });
});
</script>
<div style="height:5000px"></div>
<div id="msg" style="position:fixed;width:100px"></div>

这段代码在IE9 IE10 chrome 显示的结果都是1

在ie8以下,包括ie8 用鼠标滚轮滚动结果是4,点滚动条上的按键 结果是10,

喵了咪的,搞的在ie8 onScroll事件被触发多次,动画效果乱套了。
有没有高手帮忙ie8下如何只触发一次?

------解决方案--------------------
$(window).bind("scroll",function(){  
    //……  
}); 试试
------解决方案--------------------
ie8-有这个问题。。用计时器来做。

var s=0;
$(document).ready(function () {
    var timer;
    $(window).scroll(function () {
        if (timer) clearTimeout(timer)////
        timer = setTimeout(function () {/////
            var t = $(window).scrollTop();
            setTimeout(function () {
                if (t != 2000) {
                    $("#msg").html(++s);
                    $(window).scrollTop(2000);
                }
            }, 1000);
        }, 10);
    });
});