JavaScript检测页面底部,在Chrome上则相反

JavaScript检测页面底部,在Chrome上则相反,javascript,jquery,Javascript,Jquery,我试图对一个页面进行无限滚动,但是测试我们是否处于页面底部的条件是在Chrome上的行为不正确。在Chrome上,此警报似乎是在页面顶部触发的,而不是在页面底部触发的。但它在IE11上工作正常 在Chrome$(document).height()上等于0。如果重要的话,我的页面顶部有html 奇怪的是,我从另一个例子中得出了这个结论,在Chrome上的JSFIDLE中,它可以完美地工作: 什么样的CSS应用于页面,更不用说body元素了?可能是某些填充或边距使$(document).heigh

我试图对一个页面进行无限滚动,但是测试我们是否处于页面底部的条件是在Chrome上的行为不正确。在Chrome上,此警报似乎是在页面顶部触发的,而不是在页面底部触发的。但它在IE11上工作正常

在Chrome$(document).height()上等于0。如果重要的话,我的页面顶部有
html

奇怪的是,我从另一个例子中得出了这个结论,在Chrome上的JSFIDLE中,它可以完美地工作:


什么样的CSS应用于页面,更不用说body元素了?可能是某些填充或边距使$(document).height()等于$(window).scrollTop()和$(window).height()的组合。下面的代码将帮助您确定是否真正满足if()条件

您使用的jQuery版本是什么

$(窗口)。滚动(函数(){
var scrollPosition=$(窗口).scrollTop()+$(窗口).height();
var bodyHeight=$(文档).height();
$(“#scrollIndex”).html(scrollPosition+”/“+车身高度);
如果(滚动位置==车身高度){
$(“#滚动索引”).html(“底部!”);
$('body')。高度(bodyHeight+200+“px”);
}
});
正文{
高度:2000px;
}
#滚动索引{
位置:固定;
顶部:0px;
右:0px;
}

以下功能似乎提供了最终的防故障解决方案,以获得正确的页面高度,至少在我的情况下是这样

function getDocHeight() {
    var doc = document;
    return Math.max(
        Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight),
        Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight),
        Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
    );
}

你能发布你的整个页面吗?不幸的是,我必须保持它的私密性。对我来说(在Chrome中),它工作得很好,你的代码到底有什么问题?你的页面上的元素是左浮动还是右浮动?除非明确定义,否则浮动元素的高度为0。至少在chrome上是这样,这是一个相当长的页面。IE认为它有18000像素高。
function getDocHeight() {
    var doc = document;
    return Math.max(
        Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight),
        Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight),
        Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
    );
}