TouchEvent
Ограниченная доступность
Эта функция не относится к Baseline, поскольку она не работает во всех широко используемых браузерах.
Интерфейс TouchEvent представляет собой UIEvent, который отправляется при изменении состояния контактов с сенсорной поверхностью. Эта поверхность может быть, например, сенсорным экраном или трекпадом. Событие может описывать одну или несколько точек соприкосновения с экраном и включает поддержку определения перемещения, добавления и удаления точек соприкосновения и т. д.
Прикосновения представлены объектом Touch; каждое прикосновение описывается позицией, размером и формой, силой нажатия и целевым элементом. Списки прикосновений представлены объектами TouchList.
Конструктор
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 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
altKey |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
changedTouches |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
ctrlKey |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
metaKey |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
shiftKey |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
targetTouches |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
touches |
22 | 79 | 5218–24Удалено в ошибке 888304 из-за проблем с совместимостью веб-страниц. |
15 | Нет | 25 | 6 | 14 | 3.2 | 1.5 | 4.4 |
См. также
© 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