相对于窗口的div位置?

4
尝试查找相对于窗口的div位置。我有一个水平div,想要获取相对于窗口的左侧值。所以如果我将第二个div向窗口左侧滚动,它将显示“0”。不确定是否需要父div才能实现。这是我的fiddle链接:http://jsfiddle.net/FSrye/。编辑:应该可以在没有父div的情况下正常运行。

http://jsfiddle.net/FSrye/1/


你更愿意使用 body 吗?需要一个父级。 - Pablo
什么意思?文档的主体大小与窗口不同。 - wesbos
2个回答

9
尝试将其计算为与窗口滚动位置相关的元素位置函数:http://jsfiddle.net/va836/
 var position = $('selector').position().left - $(window).scrollLeft();

如果它不是顶级元素,您可能还需要考虑相对于其他元素的位置。

实际上,更简单的方法是只使用offset()而省略计算父元素的步骤。

var position = $('selector').offset().left - $(window).scrollLeft();

对于您的示例,您可以使用 post.position().left + $('#wrapper').position().left - $(window).scrollLeft() -- 或者是元素距离窗口边缘的距离减去当前窗口向左滚动的距离。 - tvanfosson
@Wes - 使用 offset() 更容易。 - tvanfosson

1

我认为你可以在窗口上使用 scrollLeft() 来获取水平滚动量。


嗯,那我想我误解了你的问题。 - Paul Sham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接