Кроссверсионная обработка touch-событий в Internet Explorer на Windows Phone

Согласно спецификации Touch Events существует всего четыре типа события:

  • touchstart
  • touchend
  • touchmove
  • touchcancel

Но и тут Internet Explorer отличился. Если IE11 хоть как-то стал следовать стандартам и рекомендациям W3C, то с IE9, IE10 еще хуже.

В них без вендорных префиксов не обойтись, да и названия самих событий отличаются:

Браузер touchstart touchend touchmove touchcancel
IE9 MSPointerDown MSPointerUp MSPointerMove MSPointerCancel
IE10 MSPointerDown MSPointerUp MSPointerMove MSPointerCancel
IE11 pointerDown pointerUp pointerMove pointerCancel

Соответственно, для кроссверсионной поддержки данных событий нужно написать нечто подобное:

if(window.navigator.pointerEnabled) {
// IE 11
  this.element.addEventListener("pointerDown", eventHandlerName, false);
  this.element.addEventListener("pointerMove", eventHandlerName, false);
  this.element.addEventListener("pointerUp", eventHandlerName, false);
	this.element.addEventListener("pointerCancel", eventHandlerName, false);
} else if (window.navigator.msPointerEnabled) {
// IE 10
  this.element.addEventListener("MSPointerDown", eventHandlerName, false);
  this.element.addEventListener("MSPointerMove", eventHandlerName, false);
  this.element.addEventListener("MSPointerUp", eventHandlerName, false);
	this.element.addEventListener("MSPointerCancel", eventHandlerName, false);
} else {
// Android, iOS и другие
  this.element.addEventListener("touchstart", eventHandlerName, false);
  this.element.addEventListener("touchmove", eventHandlerName, false);
  this.element.addEventListener("touchend", eventHandlerName, false);
	this.element.addEventListener("touchcancel", eventHandlerName, false);
}

Ссылки

Источник: https://www.kobzarev.com/programming/krossversionnaya-obrabotka-touch-soby-tij-v-internet-explorer-na-windows-phone/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: