scrollTop给了我跨浏览器的问题

时间:2013-07-24 13:34:51

标签: javascript jquery cross-browser

下面是我的JavaScript,用于检测我是否在页面的末尾,但是当我在Internet Explorer或safari中运行它时,它会被触发两次,而相同的脚本在firefox和chrome中运行正常。我无法弄清楚它可能出错的地方?

$(window).scroll(function() {
     if ($(window).scrollTop() + $(window).height() == $(document).height()){ 
         somefunctionCall();
     } 
});

2 个答案:

答案 0 :(得分:1)

在Internet Explorer中,滚动时可以多次触发滚动事件。 你可以使用debounce(underscoreJs或jQuery)来确保事件不会经常被触发。

示例:

$(window).scroll(jQuery.debounce(100, function() {
     if ($(window).scrollTop() + $(window).height() == $(document).height()){ 
         functionCall(); 
     } 
}));

答案 1 :(得分:0)

不鼓励使用滚动事件。请参阅:http://ejohn.org/blog/learning-from-twitter/