我是jQuery的新手,正在尝试做一些滚动工作。通过我的研究,我遇到了scrollTop()和offset()作为用于此目的的工具。我正在运行一个测试,其中按一下按钮将提示div的offset()。top的值。当我滚动一点并按下按钮时,该值会改变。我的印象是此值应保持不变,因为滚动时从div到文档顶部的距离不会改变。有人可以解释为什么会这样吗?
最佳答案
如果要测量的元素在可滚动容器中,则可以,top
可以更改,因为考虑了容器的滚动。 top
是从文档顶部到元素的可见距离。如果元素具有滚动的容器,而您更改了滚动,则距离会改变。
考虑:
<div style="height: 300px; overflow: scroll">
<p>x</p>
<!-- lots and lots more of those -->
<p id="target">click me</p>
</div>
如果滚动包含的
div
,则从文档顶部到#target
顶部的可视距离会改变。Live Example | Live Source
关于jquery - 应该offset()。top永远改变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17797766/