Html 即使在滚动时,IE中document.body.scrollTop也始终为0
移动鼠标时,我正在状态栏中显示document.body.scrollTop的值。IE中的值始终为0。为什么始终为0?是否有其他方法可以获取滚动条的移动量?根据DOCTYPE,您必须使用Html 即使在滚动时,IE中document.body.scrollTop也始终为0,html,css,Html,Css,移动鼠标时,我正在状态栏中显示document.body.scrollTop的值。IE中的值始终为0。为什么始终为0?是否有其他方法可以获取滚动条的移动量?根据DOCTYPE,您必须使用document.body.scrollTop或document.documentElement.scrollTop。你试过第二个吗 您可以这样做: var scrollTop = document.documentElement ? document.documentElement.scrollTop :
document.body.scrollTop
或document.documentElement.scrollTop
。你试过第二个吗
您可以这样做:
var scrollTop = document.documentElement ? document.documentElement.scrollTop :
document.body.scrollTop;
我在研究您的问题时遇到了以下链接:
- (朝底部)
这可能会对您有所帮助。您可能希望在IE中对较旧的doctype尝试以下方法:
var top = (document.documentElement && document.documentElement.scrollTop) ||
document.body.scrollTop;
此功能提供读取滚动偏移的跨浏览器实现:
function posTop() {
return typeof window.pageYOffset != 'undefined' ? window.pageYOffset: document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop? document.body.scrollTop:0;
}
如果
document.documentElement
未定义,该炸弹不会爆炸吗?我想你的意思是document.documentElement
而不是三元表达式的第一部分中的document.documentElement.scrollTop
。)@Vivin-它不是未定义的,只是没有设置scroll属性,导致0/false。这可以缩写为var top=document.documentElement.scrollTop | | document.body.scrollTop你以为你可以做一个简单的操作?查克·泰斯塔。如果您试图访问documentElement的属性.scrollTop,它将失败。最佳(阅读:非爆炸性)解决方案:var-top=(document.documentElement&&document.documentElement.scrollTop)| document.body.scrollTop代码>在iOS中使用document.documentElement.scrollTop时要小心。它将始终报告0。如果您需要实际测试scrollTop==0,那么此开关将不起作用。我对所选答案投了上票,因为似乎没有其他人这样做(除非有反对票)。如果你回答了Nick的问题,那就太好了。谢谢,这是唯一一个在IE的旧版本和Chrome的最新版本中都有效的答案。