2

我想使用一些无限滚动来摆脱我网站上的分页。但是,我发现的这个滚动功能似乎有些怪癖。向上滚动时它似乎会触发,例如。有没有办法只在向下滚动时触发滚动事件?此外,如果没有滚动条,它似乎根本不会触发,就像它正在跟踪页面的移动一样,而不是按下鼠标滚轮、箭头或空格键。有什么好的滚动检测功能吗?

$(window).scroll(function () {

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

        //infinite scrolling is the idea

    }

});

谢谢!

4

1 回答 1

5

你要找的公式是这个

document.body.scrollTop >= (document.body.scrollHeight - window.innerHeight - 50)

这假设您的body元素实际上没有设置height,并且它overflow没有设置为hiddenor scroll

只要您在 50 像素阈值内,这也适用于向上滚动。但是,您可以保存先前的滚动偏移量,并且仅在它增加时才执行某些操作。

var lastScrollTop = 0;
$(window).scroll(function(e) {
    var body = $("body")[0],
        scrollTop = body.scrollTop;

    if (scrollTop > lastScrollTop) {
        if (scrollTop >= (body.scrollHeight - window.innerHeight - 50)) {
            // do something
        }
    }
     lastScrollTop = scrollTop;
});
于 2012-08-14T23:44:38.950 回答