document.documentElement.scrollTop返回值在Chrome中有所不同

RGR*_*RGR 26 javascript jquery google-chrome

我正在尝试根据' document.documentElement.scrollTop'值处理一些代码.它348在FF和IE中返回' 0' 但在Chrome中返回' '.我是否需要做任何事来克服这个问题?

FF:

>>> document.documentElement.scrollTop
342
Run Code Online (Sandbox Code Playgroud)

铬:

document.documentElement.scrollTop
0
Run Code Online (Sandbox Code Playgroud)

jaz*_*mit 42

获取滚动的基于标准的方法是window.scrollY.Chrome,Firefox,Opera,Safari和IE Edge或更高版本均支持此功能.如果您只支持这些浏览器,则应使用此属性.

IE> = 9支持类似的属性window.pageYOffset,为了兼容性,返回与window.scrollY最近的浏览器相同的属性,尽管它可能在某些时候被弃用.

使用document.documentElement.scrollTop或的问题document.body.scrollTop是不需要在其中任何一个上定义滚动.Chrome和Safari定义了<body>元素上的滚动,而Firefox则在<html>返回的元素上定义了它document.documentElement.这不是标准化的,并且可能在未来版本的浏览器中发生变化.但是,如果存在scrollYpageYOffset不存在,这是获取滚动的唯一方法.

TL; DR:

window.scrollY || window.pageYOffset || document.body.scrollTop + (document.documentElement && document.documentElement.scrollTop || 0)


Nic*_*oum 19

试试这个

window.pageYOffset || document.documentElement.scrollTop
Run Code Online (Sandbox Code Playgroud)