在过去,如果我们想要获取文档在垂直方向上的滚动距离,常常会使用 document.body.scrollTop
或 document.documentElement.scrollTop
。但是,现在这种方式已经被废弃了。
为什么被废弃?
在过去,body.scrollTop
和 document.documentElement.scrollTop
是获得文档滚动距离的主要方法。但是,随着浏览器技术的发展,出现了新的方式来实现相同的效果。例如,window.scrollY
和 window.pageYOffset
。
另外,使用 document.body.scrollTop
的一个主要问题是它只在标准模式下工作,而不在怪异模式下工作。因此,如果你不确定你的文档位于哪个模式下,那么很可能会导致意料之外的结果。而 document.documentElement.scrollTop
则无此问题,但它将返回 0
如果 html
元素没有滚动条。
综上所述,由于存在更好的选择并且存在兼容性问题,body.scrollTop
已经被废弃。
新的替代方案
使用 window.scrollY
或 window.pageYOffset
可以完全取代废弃的 body.scrollTop
。它们都返回当前文档在垂直方向上的滚动距离,并且在标准模式和怪异模式下都可以工作。
-- ---------- ----- --------- - -------------- -- -------------------
总结
使用废弃的 body.scrollTop
和 document.documentElement.scrollTop
可能导致意外行为,而且有更好的替代方案。我们应该使用 window.scrollY
或 window.pageYOffset
来获取文档在垂直方向上的滚动距离。这种变化提醒我们,随着技术的进步和语言规范的更新,有些标准会变得过时,我们需要不断学习和适应最新的技术。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/30198