window.scroll事件行为不端

时间:2013-02-28 14:56:19

标签: jquery viewport

正如john resig在他的博客here中所说的那样,将处理程序附加到window.scroll事件是非常非常糟糕的做法,如果我应该求助,我感到很困惑这种方法与主要网站一样,或在页面末尾显示加载 div以获取更多内容。

我正在使用以下测试代码:

$(document).ready(function() {
            $(window).scroll(function () {
 if ($(window).scrollTop() >= $(document).height() - $(window).height() - 200) {
  alert('end of page');
     }
});
        });    

但它的作用是,一旦函数被触发,滚动条就会开始行为不端,并且在移动鼠标时它会以某种方式滚动页面。

请帮助找到问题以及此功能的最佳做法。

1 个答案:

答案 0 :(得分:0)

我对这个比较运气好了:

$(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 65) {
        alert('end of page');
    }
});

希望这可以解决您的问题,如果不能解决导致麻烦的滚动行为?

<强>更新

$(window).on('scroll', function () { do_things(); });

function do_things(){

    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 65) {

        // Unbind the scroll
        $(window).off('scroll');

        // Log a message
        console.log('do some things here');

        // Wiat for 10 seconds
        setTimeout(function() {
            // Rebind the scroll
            $(window).on('scroll', function () { do_things(); });
        }, 10000);

    }
}