在 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中文网其他相关文章!