javascript - $.position 在滚动 div 中为同一个选择器返回不同的值

标签 javascript jquery jquery-scrollable

我在同一个选择器上使用 $.position,但我得到了不同的 top 值结果。

问题可能在于获取滚动 div 中选择器的位置。这就是我使用 $.position 的原因而不是 $.offset , 但似乎我做错了什么。

你可以尝试在我的 fiddle 中多次点击文本“Get Position”: http://jsfiddle.net/FgftM/1/

一旦 div 滚动以查找选择器,再次单击“获取位置”应该不会执行任何操作,因为我已经在选择器位置上。

生成的 position 值显示在底部。

为了阐明页面的结构,这里有一个草图: enter image description here

原始 fiddle : http://jsfiddle.net/BtZQE/16/

最佳答案

我相信您想要做的是在 #content 上设置 position: relative。这样,位置 是相对于容器而不是整个页面计算的。

http://jsfiddle.net/FgftM/6/

编辑:经过一番澄清后,您仍然需要 position: relative 但您还需要添加当前的 scrollTop 值:

http://jsfiddle.net/FgftM/8/

var top = dest.top + $('#content').scrollTop();

关于javascript - $.position 在滚动 div 中为同一个选择器返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324983/

相关文章:

jquery - 使用 div 高度作为 marginTop

jquery - jquery滚动问题。如何自动滚动 onclick 到 div

javascript - 在单个页面上使用两个可滚动的 jQuery 工具实例

javascript - JQuery执行顺序、同步问题

php - jQuery - Keyboard Enter 表现得像 - 点击标签按钮?

jquery滚动到表单输入

javascript - 从多个异步函数( promise )收集数据

javascript - 使用子字符串 javascript 获取与字符串的匹配

JavaScript 范围和执行上下文

javascript - 可以在 find() 中使用 include() 吗?