我正在尝试根据 ' 处理一些代码document.documentElement.scrollTop
' 价值。它返回'348
' 在 FF 和 IE 中,但在 Chrome 中它返回 '0
'。我需要做些什么来克服这个问题吗?
FF:
>>> document.documentElement.scrollTop
342
Chrome:
document.documentElement.scrollTop
0
获取卷轴的基于标准的方法是window.scrollY https://drafts.csswg.org/cssom-view/#dom-window-scrolly。 Chrome、Firefox、Opera、Safari 和 IE Edge 或更高版本均支持此功能。如果您只支持这些浏览器,则应该使用此属性。
IE >= 9 支持类似的属性window.pageYOffset
,为了兼容性,返回与window.scrollY
在最近的浏览器中,尽管它可能在某些时候被弃用。
使用时出现的问题document.documentElement.scrollTop
or document.body.scrollTop
是滚动不需要在其中任何一个上定义。 Chrome 和 Safari 定义了它们的滚动<body>
元素,而 Firefox 将其定义在<html>
返回的元素document.documentElement
, 例如。这不是标准化的,并且可能在未来版本的浏览器中发生变化。然而,如果scrollY
or pageYOffset
不存在,这是获得卷轴的唯一方法。
TL;DR:
window.scrollY || window.pageYOffset || document.body.scrollTop + (document.documentElement && document.documentElement.scrollTop || 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)