Iscroll - Jquery - Получить позицию в элементе списка - PullRequest
2 голосов
/ 23 февраля 2012

У меня ошибка в следующем:

Справа от моей страницы у меня есть список интересных точек (отображается на карте слева от страницы).Поскольку список настолько длинный, я использую iScroll 4 (отличный плагин).

Однако я хотел бы вызвать событие, когда пользователь прокручивает список, чтобы я мог проверить, какие элементыв настоящее время виден пользователю.Для iScroll уже настроено событие, поэтому у меня есть функция, которая срабатывает при необходимости.Однако я не могу получить правильные координаты своих элементов списка.

Что происходит следующим образом:

  1. Когда список загружается, я получаю значение .offset () дляпервый элемент.offset.top = 35, потому что мой список начинается на 35 пикселей ниже верхнего края страницы.Это хорошо.
  2. Когда я прокручиваю список;скажем, я опускаю его на 500px;Я ожидаю, что новое местоположение будет 35px - 500px = -465px.Тем не менее, он говорит 35. Прокрутка списка не влияет на координаты элементов, даже если он был перемещен.

Как я могу получить фактические координаты?

Ответы [ 2 ]

9 голосов
/ 23 февраля 2012

Играя с iScroll, я думаю, что нашел решение.offset() функция javascript ссылается на div #scroller, который не меняется.Однако внутри iScroll использует свои собственные свойства x и y.

Таким образом, вы можете ссылаться на смещение iScroll следующим образом:

var myScroll = new iScroll(...)
alert(myScroll.y)  // -- will return your offset (negative number)
1 голос
/ 24 июня 2013

добавить в iscroll.js

getScrollY: function () { var that = this; return that.y; }, 
...