6

我需要计算网页滚动的结束,以便我可以进行 Ajax 调用。我在 stackoverflow 中搜索过帖子,但解决方案对我不起作用。

我正在使用以下代码离子顺序来确定:

$(window).scrollTop() == $(document).height() - $(window).height()

但上述条件失败,无法知道页面滚动何时结束。

由于 LHS 和 RHS 上的值不匹配,因此条件失败。只是为了检查我使用过:

$(window).scrollTop() == $(document).height() - $(window).height() - 13

它适用于 chrome 和 firefox,但不适用于 IE。我需要一个具体的解决方案,不想硬编码值。请帮助我做对。

编辑:具体来说,我正在尝试计算垂直滚动条的结尾。

4

4 回答 4

3

这是我要做的:

$(window).on('scroll', function() {
if($(window).scrollTop() != 0)
{    
    if( $(window).height() + $(window).scrollTop() >= $(document).height() )
    {
    //YES, I AM EXACTLY AT THE END OF THE SCROLL, PLZ FIRE AJAX NOW
    }
}
});

注意:请注意页面上任何元素的样式的上边距为负数!!它可能会抵消计算!

于 2012-09-05T10:17:45.257 回答
1

要计算滚动结束,请尝试scrollHeight 属性

于 2012-09-05T10:15:12.320 回答
1

这应该为您检索页面高度(不是使用 jQuery,而是使用 javascript):

var height = document.body.clientHeight;

您会发现这是解决您的问题的最佳跨浏览器解决方案。

于 2012-09-05T10:15:28.060 回答
0

这是你如何做到的。您获取滚动距离并添加窗口高度,然后检查它们是否等于文档高度:

$(window).on('scroll', function() {
    if (($(this).scrollTop() + $(this).height()) - $(document).outerHeight(true) >= 0) {
        alert('Scrolled to bottom');
    }
});

小提琴

这在所有五个浏览器中都适用于我!

于 2012-09-05T10:28:07.353 回答