Обнаружьте, в настоящее время прокручивая веб-страницу на 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);

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

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

Любая справка значительно ценится!

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


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

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

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

Какие-либо идеи?


Обновление 2: новое событие 'прокрутки', кажется, работает (до той же степени как эмулятор (1.6 и 2.1)) на НЕКОТОРЫХ устройствах на базе Android. Продолжит заниматься расследованиями, чтобы попытаться сузить это.

Тем не менее проблема 'прокрутки', не будучи запущенным, когда Вы прокручиваете до строки поиска. Возможно, придется иметь некоторое гибридное решение обнаружения событий 'прокрутки' и перемещения, опрашивающего после касания.

7
задан Brian Tompsett - 汤莱恩 15 August 2019 в 21:37
поделиться

3 ответа

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

1
ответ дан 7 December 2019 в 18:39
поделиться

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

1
ответ дан 7 December 2019 в 18:39
поделиться

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

как определить остановку прокрутки Android ListView?

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

0
ответ дан 7 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: