【发布时间】:2016-08-13 16:17:19
【问题描述】:
我以为$(window).scrollTop 会告诉我我滚动了多少,但是...
如果我滚动一下,我会得到:
$(window).scrollTop(): 0
$('#react-root')[0].scrollTop: 0
$('#react-root')[0].getBoundingClientRect().top: -450 // that seems to be correct
#react-root 直接附着在身体上,包含一切。事情是这样发生的吗?
==== 编辑 ===
好的,我碰巧有一个不寻常的溢出设置:
html {
overflow: hidden;
height: 100%;
}
body {
height: 100%;
overflow: scroll;
}
我这样做是为了避免过度滚动 (https://stackoverflow.com/a/17899813/2054629) 并忘记了它。
这是一个 jsfiddle,它重现了 https://jsfiddle.net/7ugf4jm5/7/ 的问题,其中没有一个元素具有正滚动顶部,而滚动确实发生了
==== 目标====
在 jsfiddle 描述的设置中,我有兴趣获取滚动偏移量(似乎 getBoundingClientRect 返回它)并能够将滚动位置重置为顶部。
【问题讨论】:
-
我在这里写了可以解决你问题的方法:stackoverflow.com/questions/36671044/…
-
谢谢,我认为 $('#react-root')[0].getBoundingClientRect().top 在我的情况下返回正确的位置,但我想了解为什么 $(window) .scrollTop() 不起作用
-
你的意思是
$('#react-root')[0].scrollTop === 0,在这种情况下窗口是不可滚动的。我需要一个例子来了解那里发生了什么。 -
好吧,我碰巧有一些奇怪的溢出设置,在
html和body标签中...感谢您的关注
标签: javascript scroll reactjs