JQuery按位置查找元素 - Firefox .position()。offest()错误

时间:2011-07-07 11:18:01

标签: jquery firefox position offset

我有一个滚动的DIV,通过JQuery确定中间的元素。我尝试过同时使用position()offset()参数,但在两种情况下,Firefox都没有得到正确的答案,而Chrome和Safari也是如此。

position().topoffset().top确定容器中间元素的位置。然而,firefox正在从滚动容器中确定它,因此在滚动期间总是将第三个元素放下而不是中间元素。

以下是2个小提琴,一个使用.position(),另一个使用.offset()

OFFSET() - http://jsfiddle.net/pxfunc/XHPYF/7/
POSITION () - http://jsfiddle.net/U4qyp/133/

任何人都知道为什么会发生这种情况或如何解决它?

编辑 -

问题的一部分是插件iScroll,但这是使元素工作所必需的,所以我想知道有没有办法确定哪个元素在容器顶部下面是100px;

1 个答案:

答案 0 :(得分:1)

看起来iScroll使用CSS转换而不是传统的顶部/左侧位置。这很好,可能更优,但似乎由于某种原因CSS转换属性没有反映在Firefox DOM中。 (至少不在Firebug属性列表中。)我找不到一篇好的文章来指出它是一个bug还是故意的。

您可以使用iScrollers属性来获取当前偏移量,这是驱动CSS变换设置的原因。

我在jsFiddle上分享你的例子,检查出来。 http://jsfiddle.net/cburyta/GvPPM/9/

似乎iScroll对我不起作用(至少我链接到的例子实际上并没有滚动,虽然它似乎找到了像滚动的中间元素......奇怪。)