Браузер iOS теряет событие прокрутки окна, когда вы возвращаетесь на страницу - PullRequest
1 голос
/ 15 января 2012

В среде Prototype Javascript вы должны написать следующий код для прослушивания события прокрутки окна.

document.observe(
   'dom:loaded',
    function() {
        Event.observe(
            window,
            'scroll',
            function(event) {
                console.info(event);
            }
        );
    }
);

В браузере Safari на iOS обработчик прокрутки больше не запускается, когда вы покидаете страницу и нажимаете клавишу назад.Браузер Android не имеет этой проблемы.Кто-то подал решение для jQuery , но я использую Prototype.Как убедиться, что вы всегда слушаете событие прокрутки с помощью Prototype?

1 Ответ

0 голосов
/ 16 января 2012

Не уверен, что подробности в Prototype, но что касается поддержки мобильного браузера для традиционного события прокрутки, он не существует. Вы получите событие прокрутки, когда будет определено, что прокрутка закончена, что я считаю неловким. Если вы покопаетесь в исходном коде jQueryMobile, вы увидите, как они справились с этим. Например, панели инструментов с фиксированным положением. Они прячут их каждый раз, когда запускается событие сенсорного запуска. Они делают это, потому что у них нет конкретного способа определить, прокручивается ли приложение или нет. И поскольку при прокрутке представления событие не вызывается, они не знают, как изменить положение фиксированных панелей инструментов. После запуска события окончания прокрутки или события touchend / touchstop / touchcancel они снова отображают панель инструментов в правильном положении.

...