TouchEvent
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Want more support for this feature? Tell us why.
ÐнÑеÑÑÐµÐ¹Ñ 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, пÑедÑÑавлÑÑÑими ÑекÑÑие ÑоÑки каÑÐ°Ð½Ð¸Ñ Ñ ÑенÑоÑной повеÑÑ Ð½Ð¾ÑÑÑÑ, коÑоÑÑе Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð½Ð° одном и Ñом же Ñелевом ÑлеменÑе target. 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
ÐÑоиÑÑ Ð¾Ð´Ð¸Ñ, еÑли ÑоÑка каÑÐ°Ð½Ð¸Ñ Ð±Ñла по какой-либо пÑиÑине Ñдалена. СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко возможнÑÑ Ð¿ÑиÑин, поÑÐµÐ¼Ñ ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизойÑи (и конкÑеÑнÑе пÑиÑÐ¸Ð½Ñ Ð¼Ð¾Ð³ÑÑ ÑазниÑÑÑÑ Ð¾Ñ ÑÑÑÑойÑÑва к ÑÑÑÑойÑÑвÑ, Ð¾Ñ Ð±ÑаÑзеÑа к бÑаÑзеÑÑ):
- ÐÑоизоÑло какое-Ñо ÑобÑÑие, оÑменивÑее пÑикоÑновение; ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизойÑи, еÑли во вÑÐµÐ¼Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ð¿Ð¾ÑвлÑеÑÑÑ Ð¼Ð¾Ð´Ð°Ð»Ñное окно.
- ТоÑка каÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ¸Ð½Ñла окно докÑменÑа и пеÑемеÑÑилаÑÑ Ð² облаÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого инÑеÑÑейÑа бÑаÑзеÑа, подклÑÑаемого модÑÐ»Ñ Ð¸Ð»Ð¸ дÑÑгого внеÑнего ÑодеÑжимого.
- ÐолÑзоваÑÐµÐ»Ñ Ð·Ð°Ð´Ð°Ð» болÑÑе ÑоÑек каÑÐ°Ð½Ð¸Ñ Ð½Ð° ÑкÑане, Ñем поддеÑживаеÑÑÑ, в ÑÑом ÑлÑÑае наиболее Ñанние ÑоÑки
Touchв ÑпиÑкеTouchListбÑдÑÑ Ð¾ÑмененÑ.
ÐÑполÑзование addEventListener() и preventDefault()
Ðажно оÑмеÑиÑÑ, ÑÑо во многиÑ
ÑлÑÑаÑÑ
пÑоиÑÑ
одÑÑ Ð¸ ÑобÑÑÐ¸Ñ ÐºÐ°Ñаний, и ÑобÑÑÐ¸Ñ Ð¼ÑÑи (ÑÑÐ¾Ð±Ñ ÐºÐ¾Ð´, не иÑполÑзÑÑÑий каÑаниÑ, мог пÑодолжаÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑвоваÑÑ Ñ Ð¿Ð¾Ð»ÑзоваÑелем). ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе ÑобÑÑÐ¸Ñ ÐºÐ°ÑаниÑ, вам ÑледÑÐµÑ Ð²ÑзÑваÑÑ preventDefault() Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð¾ÑпÑавки ÑобÑÑий мÑÑи.
ÐÑклÑÑением из ÑÑого пÑавила ÑвлÑеÑÑÑ Ð±ÑаÑÐ·ÐµÑ Chrome, наÑÐ¸Ð½Ð°Ñ Ñ Ð²ÐµÑÑии 56 (наÑÑолÑнÑй, Chrome Ð´Ð»Ñ android, и android webview), в коÑоÑой знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ touchstart и touchmove Ñавно true и вÑÐ·Ð¾Ð²Ñ Ð¼ÐµÑода preventDefault() не ÑÑебÑÑÑÑÑ. ЧÑÐ¾Ð±Ñ Ð¿ÐµÑеопÑеделиÑÑ Ñакое поведение, пÑоÑÑо ÑÑÑановиÑе знаÑение опÑии passive ÑавнÑм false как показано в пÑимеÑе ниже. ÐÑо изменение запÑеÑÐ°ÐµÑ Ð¾Ð±ÑабоÑÑÐ¸ÐºÑ Ð±Ð»Ð¾ÐºÐ¸ÑоваÑÑ Ð¾ÑÑиÑÐ¾Ð²ÐºÑ ÑÑÑаниÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¿ÑокÑÑÑки полÑзоваÑелем. ÐемонÑÑÑаÑÐ¸Ñ ÑÑого доÑÑÑпна на ÑайÑе Google Developer.
GlobalEventHandlers
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ: ÐÑо ÑкÑпеÑименÑалÑÐ½Ð°Ñ ÑеÑ
нологиÑ
Так как ÑпеÑиÑикаÑÐ¸Ñ ÑÑой ÑеÑ
нологии еÑÑ Ð½Ðµ ÑÑабилизиÑовалаÑÑ, ÑмоÑÑиÑе ÑаблиÑÑ ÑовмеÑÑимоÑÑи по Ð¿Ð¾Ð²Ð¾Ð´Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑазлиÑнÑÑ
бÑаÑзеÑаÑ
. Также замеÑÑÑе, ÑÑо ÑинÑакÑÐ¸Ñ Ð¸ поведение ÑкÑпеÑименÑалÑной ÑеÑ
нологии Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ Ð² бÑдÑÑиÑ
веÑÑиÑÑ
бÑаÑзеÑов, вÑлед за изменениÑми ÑпеÑиÑикаÑии.
GlobalEventHandlers.ontouchstart-
ÐбÑабоÑÑик
global event handlerÐ´Ð»Ñ ÑобÑÑиÑtouchstart. GlobalEventHandlers.ontouchend-
ÐбÑабоÑÑик
global event handlerÐ´Ð»Ñ ÑобÑÑиÑtouchend. GlobalEventHandlers.ontouchmove-
ÐбÑабоÑÑик
global event handlerÐ´Ð»Ñ ÑобÑÑиÑtouchmove. GlobalEventHandlers.ontouchcancel-
ÐбÑабоÑÑик
global event handlerÐ´Ð»Ñ ÑобÑÑиÑtouchcancel.
ÐÑимеÑ
СмоÑÑиÑе пÑÐ¸Ð¼ÐµÑ Ð² оÑновной ÑÑаÑÑе о ÑобÑÑиÑÑ ÐºÐ°ÑаниÑ.
СпеÑиÑикаÑии
| Specification |
|---|
| Touch Events > # touchevent-interface > |