2016-10-13 13 views
2

В Safari 10, определяя простой прослушиватель, который предотвращает по умолчанию событие touchmove в прокручиваемом элементе, событие по умолчанию не предотвращается, как это происходит с Safari 9 и менее (он также работает во всех основных браузерах).прокрутка по умолчанию не допускается при событии touchmove на iOS10

Это воспроизводимая здесь: http://codepen.io/anon/pen/PGRxOv

Шаги по воспроизведению:

  • Возьмем элемент с прокруткой содержимого (переполнение: прокрутки).
  • Добавить прослушиватель событий на него для события touchmouve и позвонить event.preventDefault() в этом прослушивателе событий.

Ожидаемые результаты:

элемент не должен быть прокручивать.

Фактические результаты:

Элемент еще прокручивать на сафари 10.

Версия: IOS 10.0.2

Возможно проблема WebKit ... Я открыл issue на веб-сайте.

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

Я также попытался return false в слушателе, но он не работает.

ответ

0

Спасибо за то, что вы писали об этом и поднимали вопрос - он меня полностью сбивал с толку!

Ваше codepen решение, похоже, не работает для меня, но я с тех пор нашел другое решение здесь: https://github.com/metafizzy/flickity/issues/457

Это их решение:

window.addEventListener('touchmove', function() {}) 

ощущению очень Hacky, но работал мой ситуация.

Я надеюсь, что это поможет кому-то еще расстроен этим.