javascript — любые параметры для положения во время прокрутки переполнения webkit: событие касания

Любые опции для положения во время прокрутки-переполнения webkit: событие касания

У меня есть div с webkit-overflow-scrolling для сенсорного экрана. На iOS это затем дает мне обновленную позицию во время события touchmove, но как только пользователь отпускает это событие, он завершается и делается последний вызов touchend до того, как все события остановятся, но div продолжает прокручивать импульс.

Это поведение, которое я хочу, но я также хочу обновить страницу во время этой прокрутки импульса.

Я запускаю вызов requestAnimationFrame, когда происходит событие касания, и я могу сделать это, пока происходит прокрутка импульса. Но когда я получаю информацию DOM, она останавливается, пока не закончится прокрутка mometnum.

Я попытался использовать как положение прокрутки элемента прокрутки, так и elementFromPoint, но у обоих просто есть положение, в котором находился прокручиваемый элемент div в момент запуска touchend, и не обновляюсь до тех пор, пока не закончится прокрутка импульса.

Кто-нибудь знает какой-либо способ получить информацию о DOM в реальном времени на iOS (6 , не беспокойтесь о 5)

Вот код, который я использую:

 var glideStart; var bird_scanner = document.getElementById('bird-scanner'); bird_scanner.addEventListener('touchend',function() { glideStart = null; requestAnimationFrame(glide); }); function glide(timestamp) { // if we need to reset the timestamp if( glideStart === null ) { glideStart = timestamp; } // determine if we've moved var bird_scanner = document.getElementById('bird-scanner'); console.log( document.elementFromPoint(337,568) ); // calculate progress (keep running for a very long time so we see what happens when momentum ends) var progress = timestamp - glideStart; if( progress {amp}lt; 10000 ) { requestAnimationFrame(App.Controller.bird.glide); } } 

Обновить

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

Я закончил тем, что убрал прокручивание импульса и просто обнаружил пролистывания и сразу перебрал кучу элементов, когда это сработало.

Я заметил какое-то особенно странное поведение. Когда у меня был webkit-overflow-scrolling: touch, установленный на элемент, который прокручивал страницу вверх / вниз и добавил setTimeout (some_func, 0) к событию touchend, функция не запускалась до тех пор, пока не завершилась прокрутка импульса. Когда я попробовал ту же самую вещь на свитке, идущем влево / вправо, это сразу вызвало функцию. Понятия не имею, почему это происходит, решил, что это просто странная странность.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector