首页  >  文章  >  web前端  >  为什么 `document.body.scrollTop` 在 IE 中返回 0,如何修复?

为什么 `document.body.scrollTop` 在 IE 中返回 0,如何修复?

Linda Hamilton
Linda Hamilton原创
2024-11-12 09:28:01900浏览

Why Does `document.body.scrollTop` Return 0 in IE and How Can I Fix It?

在 IE 中使用 document.body.scrollTop 获取准确的滚动位置

在 IE 中,通过 document.body.scrollTop 一致地访问滚动位置即使滚动时也返回 0。对于寻求有效跟踪滚动事件的开发人员来说,这种行为可能会令人困惑。

为了解决此问题,浏览器实现了两种独立的渲染模式:Quirks 模式和标准模式。 Quirks 模式专为在 Web 标准被广泛采用之前创建的旧网站而设计。在 Quirks 模式下,IE 错误地将 document.body.scrollTop 设置为 0。

要解决此差异,一种解决方案是确保您的网站使用标准模式文档类型:

<!DOCTYPE html>

以防万一您的网站无法切换到标准模式,还有另一种方法:

var top = (document.documentElement && document.documentElement.scrollTop) || 
              document.body.scrollTop;

此代码会检查文档元素和主体。如果定义了 documentElement,则它优先,因为它提供了更准确的滚动位置。否则,它会回退到 document.body.scrollTop。

以上是为什么 `document.body.scrollTop` 在 IE 中返回 0,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn