2016-07-12 2 views
1

У меня есть прослушиватель событий для прокрутки, и все отлично работает с настольными браузерами (при запуске прокрутки - событие запускается сразу) и браузером Chrome на мобильном телефоне (хромированная версия + версия для Android версии 5.0), но с другими мобильными браузерами (ff, android browser) это работает по-разному, и после поиска для некоторых я нашел причину: это потому, что событие прокрутки не запускается до тех пор, пока действие прокрутки не завершится полностью (отпустите палец с экрана).Задержка прокрутки события прокрутки в мобильном телефоне

У меня вопрос, есть ли обходной путь для этого, возможно, какая-то передовая практика, поэтому он будет срабатывать нормально (как для рабочего стола), так и без резких изменений производительности?

* JS решение только (нет для jquery).

ответ

2

Вы можете использовать iScroll. Это не зависит от jQuery и обеспечивает то, что вы хотите (например, стрелять по прокручиваемым событиям на мобильных платформах ~).

Вы можете обратиться к this answer за тем, как реализовать это с помощью iScroll.

+0

Можете ли вы рассказать, как это работает? Я не хочу просто импортировать другие файлы кода, чтобы преодолеть эту крошечную вещь. Должен быть другой, гораздо более чистый способ достичь этого – zaknuroy

1

Я согласен с ответом Мохита Бхардваджа, и я просто хочу сказать кое-что важное о iScroll.

iScroll работает в зависимости от css3 translate и события js, такого как touchMove, touchStart и touchEnd. Вы можете просто подумать, что он обрабатывает всю систему прокрутки на вашей странице или контейнер элементов, который вы установили для его обработки. Одна вещь, которую вы должны знать, если вы хотите прослушать событие прокрутки в iScroll, вы должны импортировать iscroll-probe.js и установить параметр probeType с 2 или 3. В противном случае вы не получите событие прокрутки.

iScroll версия 5 хороша, я использую ее во многих проектах. Вы можете увидеть его документы и код here

Смежные вопросы