Как получить направление прокрутки в iScroll - PullRequest
2 голосов
/ 20 марта 2012

Во-первых, мне очень жаль моего плохого английского ...

Сейчас я занимаюсь разработкой PhoneGap. Я использую iScroll для прокрутки списка. И я хочу получить направление прокрутки.

Например, когда я сдвигаю экран вниз, скроллер прокручивается вверх. Когда я сдвигаю экран вверх, скроллер прокручивается вниз, и как получить направление скроллера при прокрутке?

Может кто-нибудь помочь? Буду благодарен!

Ответы [ 2 ]

6 голосов
/ 14 августа 2012

У меня был такой же вопрос, и я использовал свойства .dirX и .dirY экземпляра iScroll.Их значение всегда равно 1 (влево / вверх), 0 (нет) или -1 (вправо / вниз), что приятно оценивается как true, если направление находится на конкретной оси.

new iScroll("your_element_id", {
    onTouchEnd: function(){
        alert(this.dirX); // Returns 1, 0 or -1
        alert(!!this.dirX); // Returns true for horizontal
    }
});

Поскольку мне нужно определить направление движения, я использую событие onTouchEnd, но то же самое относится и к onScrollMove (и, возможно, к другим событиям).

1 голос
/ 18 апреля 2012

Нет прямого способа сделать это, но вы можете достичь этого с помощью событий.

Вы можете использовать событие onScrollStart, чтобы определить, когда прокрутка началась.Запишите текущую позицию, используя .x, и начните интервал (setInterval), чтобы продолжить проверку новой текущей позиции.Затем вы можете сделать разницу и выяснить, прокручивали ли вы влево или вправо.

Обязательно очистите интервал при прокрутке.

...