Spec-Zone.ru › Web APIs

TouchEvent

Ограниченная доступность

Эта функция не относится к Baseline, поскольку она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Интерфейс TouchEvent представляет собой UIEvent, который отправляется при изменении состояния контактов с сенсорной поверхностью. Эта поверхность может быть, например, сенсорным экраном или трекпадом. Событие может описывать одну или несколько точек соприкосновения с экраном и включает поддержку определения перемещения, добавления и удаления точек соприкосновения и т. д.

Прикосновения представлены объектом Touch; каждое прикосновение описывается позицией, размером и формой, силой нажатия и целевым элементом. Списки прикосновений представлены объектами TouchList.

Событие UIEvent TouchEvent

Конструктор

TouchEvent()

Создает объект TouchEvent.

Свойства экземпляра

Этот интерфейс наследует свойства от родительских интерфейсов UIEvent и Event.

TouchEvent.altKey Только для чтения

Булево значение, указывающее, была ли нажата клавиша Alt при срабатывании события касания.

TouchEvent.changedTouches Только для чтения

TouchList всех объектов Touch, представляющих отдельные точки контакта, состояние которых изменилось между предыдущим событием касания и текущим.

TouchEvent.ctrlKey Только для чтения

Булево значение, указывающее, была ли нажата клавиша Ctrl при срабатывании события касания.

TouchEvent.metaKey Только для чтения

Булево значение, указывающее, была ли нажата клавиша Meta при срабатывании события касания.

TouchEvent.shiftKey Только для чтения

Булево значение, указывающее, была ли нажата клавиша Shift при срабатывании события касания.

TouchEvent.targetTouches Только для чтения

TouchList всех объектов Touch, которые в данный момент находятся в контакте с сенсорной поверхностью и были начаты на том же элементе, являющемся целевым для события.

TouchEvent.touches Только для чтения

TouchList всех объектов Touch, представляющих все текущие точки контакта с поверхностью, независимо от целевого элемента или статуса изменения.

TouchEvent.rotation Нестандартный Только для чтения

Изменение угла поворота (в градусах) с момента начала события. Положительные значения указывают поворот по часовой стрелке; отрицательные — против часовой стрелки. Начальное значение: 0.0.

TouchEvent.scale Нестандартный Только для чтения

Расстояние между двумя пальцами с момента начала события. Выражается как числовое значение, кратное начальному расстоянию между пальцами в начале события. Значения ниже 1,0 указывают на сжатие (зум-выход); значения выше 1,0 — на растяжение (зум-вход). Начальное значение: 1.0.

Типы событий касания

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

touchstart

Отправляется, когда пользователь устанавливает точку касания на сенсорной поверхности. Целевым элементом события будет element, в котором произошло касание.

touchend

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

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

Точку (или точки) касания, которые были удалены с поверхности, можно найти в TouchList, указанном атрибутом changedTouches.

touchmove

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

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

Примечание: Скорость отправки событий touchmove зависит от браузера и может также варьироваться в зависимости от возможностей аппаратного обеспечения пользователя. Не следует полагаться на конкретную точность этих событий.

touchcancel

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

  • Произошло событие, которое отменило касание; это может произойти, если во время взаимодействия всплывает модальное окно с предупреждением.
  • Точка касания покинула окно документа и переместилась в область пользовательского интерфейса браузера, плагин или другое внешнее содержимое.
  • Пользователь установил больше точек касания на экране, чем поддерживается, в этом случае первой точке касания в TouchList присваивается статус отмены.

Использование с addEventListener() и preventDefault()

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

Исключением из этого является Chrome, начиная с версии 56 (настольный компьютер, Chrome для Android и Android WebView), где значение по умолчанию для параметра passive для touchstart и touchmove равно true, и вызовы preventDefault() не имеют эффекта. Чтобы переопределить это поведение, вам нужно установить параметр passive в значение false, после чего вызов preventDefault() будет работать как указано. Изменение на обработку слушателей как passive по умолчанию предотвращает блокировку рендеринга страницы во время прокрутки пользователем. Демо-версия доступна на сайте Chrome Developer.

Пример

См. пример в основной статье про события касания.

Спецификации

Спецификация
События касания
# touchevent-interface

Совместимость браузеров

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
TouchEvent
48Chrome поддерживает только следующие свойства: touchEventInit, targetTouches, changedTouches.
79Edge поддерживает только следующие свойства: touches, targetTouches, changedTouches.
Нет
35Opera поддерживает только следующие свойства: touches, targetTouches, changedTouches.
Нет
48Chrome Android поддерживает только следующие свойства: touches, targetTouches, changedTouches.
46
35Opera Android поддерживает только следующие свойства: touches, targetTouches, changedTouches.
3.2
5.0Samsung Internet поддерживает только следующие свойства: touches, targetTouches, changedTouches.
48WebView Android поддерживает только следующие свойства: touches, targetTouches, changedTouches.
TouchEvent 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
altKey 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
changedTouches 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
ctrlKey 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
metaKey 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
shiftKey 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
targetTouches 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4
touches 22 79 52
18–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц.
15 Нет 25 6 14 3.2 1.5 4.4

См. также

  • События касания
  • GestureEvent

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API