2015-04-08 2 views
0

Я использую ScrollMagic для запуска анимации в каждом разделе веб-страницы. Это отлично работает для настольных компьютеров и для некоторых браузеров на мобильных устройствах.Как определить поддержку немедленных событий прокрутки с помощью Modernizr?

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

Есть ли способ обнаружить это с помощью Modernizr? Или мне нужно настроить таргетинг на определенные браузеры и их версии?

ответ

0

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

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

Я считаю, что то, что вы видите, является результатом события scroll, не срабатывающего при прокрутке по определенным браузерам. Я не могу придумать способ имитировать это с помощью javascript (запуск события прокрутки, очевидно, вызовет только одно событие scroll, так что там ничего не получится). В результате я не уверен, что вы сможете точно определить это.

0

Я полностью согласен с Patrick's answer, но хотел бы добавить, что действительно возможно иметь немедленные события прокрутки на мобильных версиях хром и сафари, о которых вы говорите.

Проблема вы описываете относится ко всем IOS устройств до версии 8.
До этого мобильного браузера двигатель не срабатывали «истинных» прокрутки событий во время прокрутки, но только один раз листание пришел к полной остановке (поэтому после прекращения инерции). Даже выполнение javascript было приостановлено, поэтому вы не могли просто запустить цикл, чтобы проверить положение прокрутки.

Короткий рассказ: есть способы вокруг него с использованием контейнеров для прокрутки и requestAnimationFrame.
Самый простой способ получить события прокрутки для устройств pre iOS8 - iScroll.

Я бы рекомендовал проверить это: http://janpaepke.github.io/ScrollMagic/examples/advanced/mobile_basic.html
и это:
http://janpaepke.github.io/ScrollMagic/examples/expert/mobile_advanced.html

Так, возвращаясь к первоначальному вопросу: Как определить, когда вы даже нужны эти обходные пути.
Вам нужно будет проверить, находится ли вы на iOS версии 7 или ниже, что, насколько мне известно, не может быть выполнено с помощью modernizr, так как это библиотека обнаружения функций.

Поэтому ознакомьтесь с этой темой, чтобы узнать больше: Detect iOS version less than 5 with JavaScript

Смежные вопросы