События для инерционной прокрутки на мобильном сафари - PullRequest
5 голосов
/ 23 марта 2012

В настоящее время я использую переполнение: прокрутите веб-страницу, оптимизированную для iPad, и она прекрасно работает.У меня начались проблемы с событиями касания элементов в элементе прокрутки, потому что он интерпретировал прокрутки как касания.Поскольку событие прокрутки не завершено и событие прокрутки срабатывает при каждой прокрутке, я попытался обнаружить событие прокрутки и установить таймер для временного отключения события прикосновения.Тем не менее, я обнаружил, что событие прокрутки срабатывает только каждый раз, когда пользователь запускает прокрутку, что редко происходит с инерционной прокруткой.

Существует ли постоянно прокручивающееся событие прокрутки или какой-либо другой способ обнаружить, что прокрутка в настоящее время происходит?

Это проблема только с инерционной прокруткой в ​​Mobile Safari, потому что когда вы перемещаете мышь на OS X, инерционная прокрутка автоматически останавливается, поэтому, чтобы инициировать событие нажатия, вам, как правило, нужно двигать мышь,таким образом избегая конфликта.У вас также нет двойного сенсорного ввода для прокрутки и сенсорного нажатия.

1 Ответ

3 голосов
/ 04 мая 2012
<script type="text/javascript">
<!--
    document.addEventListener("touchmove", ScrollStart, false);
    document.addEventListener("scroll", Scroll, false);
    function ScrollStart() {
        //start of scroll event for iOS
    }
    function Scroll() {
        //end of scroll event for iOS
        //and
        //start/end of scroll event for other browsers
    }   
// -->
</script>
...