为什么 body.scrollTop 被废弃了?

在过去,如果我们想要获取文档在垂直方向上的滚动距离,常常会使用 document.body.scrollTopdocument.documentElement.scrollTop。但是,现在这种方式已经被废弃了。

为什么被废弃?

在过去,body.scrollTopdocument.documentElement.scrollTop 是获得文档滚动距离的主要方法。但是,随着浏览器技术的发展,出现了新的方式来实现相同的效果。例如,window.scrollYwindow.pageYOffset

另外,使用 document.body.scrollTop 的一个主要问题是它只在标准模式下工作,而不在怪异模式下工作。因此,如果你不确定你的文档位于哪个模式下,那么很可能会导致意料之外的结果。而 document.documentElement.scrollTop 则无此问题,但它将返回 0 如果 html 元素没有滚动条。

综上所述,由于存在更好的选择并且存在兼容性问题,body.scrollTop 已经被废弃。

新的替代方案

使用 window.scrollYwindow.pageYOffset 可以完全取代废弃的 body.scrollTop。它们都返回当前文档在垂直方向上的滚动距离,并且在标准模式和怪异模式下都可以工作。

-- ----------
----- --------- - -------------- -- -------------------

总结

使用废弃的 body.scrollTopdocument.documentElement.scrollTop 可能导致意外行为,而且有更好的替代方案。我们应该使用 window.scrollYwindow.pageYOffset 来获取文档在垂直方向上的滚动距离。这种变化提醒我们,随着技术的进步和语言规范的更新,有些标准会变得过时,我们需要不断学习和适应最新的技术。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/30198