JQuery найти элемент по позиции - Firefox .position () .offest () ошибка - PullRequest
1 голос
/ 07 июля 2011

У меня есть прокручиваемый DIV, который через JQuery определяет элемент в середине.Я пытался использовать параметры position() и offset(), и в обоих случаях Firefox не получает правильного ответа, в то время как Chrome и Safari дают.

position().top или offset().top определяют положениесредний элемент из контейнера.Тем не менее, Firefox определяет его из прокручиваемого контейнера и, таким образом, всегда выделяет третий элемент, а не средний элемент во время прокрутки.

Вот 2 скрипки, одна из которых использует .position(), а другая .offset().

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

Кто-нибудь знает, почему это происходит или как это исправить?

РЕДАКТИРОВАТЬ-

Часть проблемы - это плагин iScroll, но он необходим для работы элемента, поэтому мне интересно, есть ли способ определить, какой элемент 100px; находится ниже верхней части контейнера.

1 Ответ

1 голос
/ 07 июля 2011

Похоже, что iScroll использует преобразования CSS вместо традиционных верхних / левых позиций.Это нормально и, вероятно, более оптимально, но, по некоторым причинам, свойства перехода CSS не отражаются в DOM Firefox.(По крайней мере, в списке свойств Firebug.) Я не смог найти хорошую статью, на которую можно было бы указать, является ли она ошибкой или намеренной.

Вы можете использовать свойства iScrollers, чтобы получить текущее смещение, котороеэто то, что управляет настройками CSS-преобразования.

Я разобрал ваш пример на jsFiddle, посмотрите его.http://jsfiddle.net/cburyta/GvPPM/9/

Мне кажется, что iScroll не работает в IE для меня (по крайней мере, пример, на который я ссылался, фактически не прокручивается, хотя кажется, что он находит средний элемент, как будто он прокручивается ... странно.)

...