Обнаруживать, если в настоящее время прокрутка веб-страницы на Android

Я пытаюсь обнаружить, когда пользователь закончил прокрутку веб-страницы с помощью javascript на Android. Сценарий, который у меня есть, работает на iPhone и кажется правильным для меня, что он должен работать на Android. Во всяком случае, фрагмент:

previous = pageYOffset; interval = setInterval(function() { //Has scrolling stopped? if(previous == pageYOffset) { clearInterval(interval); //DO SOMETHING AFTER SCROLL COMPLETE } else { previous = pageYOffset; } }, 200); 

Основная идея, опросить страницуYOffset каждые 200 мс, если не было никаких изменений, тогда прокрутки не происходит. В противном случае продолжайте искать.

Как я уже сказал, это работает на iPhone, поэтому я предполагаю, что это что-то связано с Android, возможно, не обновляет страницуYOffset во время прокрутки?

Любая помощь очень ценится!

Примечание. Я пошел на этот маршрут, так как не смог найти свойство isScrolling или событие scrollStop. Если я упустил один из них, пожалуйста, скажите мне 🙂

благодаря


Обновление. Просто попробовал использовать это событие для прокрутки. Смешанные результаты здесь. На эмуляторе Android он работал почти правильно, но был очень прерывистым на реальном телефоне (2.1 Sense Hero GSM), т.е. было обнаружено только 1 из 10 свитков.

Даже когда он «работал» на эмуляторе, он не запускал событие прокрутки, когда вы прокручиваете «вверх», когда находитесь в верхней части страницы (т.е. нажмите, чтобы увидеть адресную строку). Это проблема, поскольку страница фактически была прокручена (изменилась позиция), но я не получаю событие.

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

Любые идеи парней?


Обновление 2: новое событие «прокрутки» работает (в той же степени, что и эмулятор (1.6 и 2.1)) на некоторых устройствах Android. Будет продолжать расследование, чтобы попытаться сузить это.

Тем не менее проблема «прокрутки» не запускается при прокрутке вверх до адресной строки. Возможно, потребуется какое-то гибридное решение «обнаружения прокрутки» и опроса движения после касания.

Герой охотно посещает себя на случайных событиях и не сообщает им правильно javascript. Мы обнаружили ряд из них в нашей разработке Android. Иногда кажется, что вы держите телефон (не шутите!)

Используется ли событие window.onscroll для обнаружения прокрутки страницы / кадра, чтобы ответить на ваш вопрос? Этот плакат использовал событие window.onscroll для обнаружения прокрутки, поэтому, возможно, вы можете сохранить текущую позицию и отключить вызов setTimeout в обработчике событий. Если при обратном вызове вы находитесь в том же положении, тогда прокрутка остановится.

Может быть, вы можете использовать onScrollListener?

Как обнаружить Android ListView Scrolling остановлено?

Этот парень пытается обнаружить остановку, но я уверен, что она работает и для прокрутки.