Internet Explorer 中文档滚动行为不一致
在尝试通过 document.body.scrollTop 动态显示滚动位置时,您遇到过异常:它在 Internet Explorer 中始终返回 0。要了解为什么会发生这种情况,让我们深入研究问题并提供解决方案。
为什么 IE 中 document.body.scrollTop 始终为零?
在早期版本中在 Internet Explorer 中,文档呈现的非标准解释导致与scrollTop 属性的行为不一致。当使用严格的 HTML5 文档类型时,IE10 及更高版本现在在这方面与其他浏览器保持一致。
旧版 IE 版本的替代解决方案
对于旧版 IE,需要替代方法来准确检索滚动位置。以下代码片段提供了后备解决方案:
var top = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
此代码检查 documentElement 属性是否存在并返回其scrollTop 值。如果没有,它将回退到 document.body.scrollTop。
通过采用此解决方案,您可以确保跨浏览器(包括旧版本的 Internet Explorer)检索一致的滚动位置。
以上是为什么旧版本的 Internet Explorer 中 document.body.scrollTop 始终为零?的详细内容。更多信息请关注PHP中文网其他相关文章!