我需要计算网页上滚动的结束,以便我可以进行Ajax调用。 我在stackoverflow中搜索了帖子,但解决方案对我没用。
我正在使用以下代码离子顺序来确定:
$(window).scrollTop() == $(document).height() - $(window).height()
但上述条件失败,无法知道页面滚动何时结束。
由于L.H.S和R.H.S的值不匹配,因此条件失败。 只是为了检查我使用过:
$(window).scrollTop() == $(document).height() - $(window).height() - 13
适用于chrome和firefox但是IE失败了。 我需要一个具体的解决方案,不想硬编码值。 请帮助我做对。
编辑:具体来说,我正在尝试计算垂直滚动条的结束。
答案 0 :(得分: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
}
}
});
注意:请注意页面上任何元素的样式都有负顶边距!!它可能会抵消计算!
答案 1 :(得分:1)
要计算滚动结束,请尝试scrollHeight property。
答案 2 :(得分:1)
这应该为你检索页面高度(不是使用jQuery而是使用javascript):
var height = document.body.clientHeight;
您会发现这是解决您问题的最佳跨浏览器解决方案。
答案 3 :(得分:0)
这是你如何做到的。您获取滚动距离并添加窗口高度,然后检查它们是否等于文档高度:
$(window).on('scroll', function() {
if (($(this).scrollTop() + $(this).height()) - $(document).outerHeight(true) >= 0) {
alert('Scrolled to bottom');
}
});
这适用于所有五种浏览器!