Събитието Pointerup не работи правилно с Windows Phone 8.1 / IE11

Събитието pointerup не работи правилно с Win Windows Phone 8.1 и Internet Explorer 11. Имам предвид, че се задейства автоматично (точно след показалеца надолу), а не когато пръстът ви излезе.

Направих пример тук.

Ако го тествате с настолни браузъри или Android-Chrome или iOS-Chrome/Safai работи правилно

Някой има ли някакво решение за това?


person Xatpy    schedule 20.02.2015    source източник
comment
Тестван с Nokia Lumia 625.   -  person Xatpy    schedule 20.02.2015


Отговори (1)


Получавате ли pointercancel събитие?

Ако не зададете touch-action правилно, тогава pointercancel се изпраща веднага след pointerdown. Мисля, че това е така, защото браузърът смята, че е започнала манипулация като превъртане.

За да избегнем това, използваме:

html.is-pointer-events .touch-grip {
    -ms-touch-action: none;
    touch-action: none;
}

Обърнете внимание, че активираме това правило само ако използваме събития с указател на Microsoft, защото в противен случай свойството за действие при докосване пречи на други браузъри (напр. Chrome).

Добавяме is-pointer-events към document.documentElement.className, ако navigator.msPointerEnabled е вярно (т.е. добавяме класа, когато използваме onpointerdown вместо ontouchstart). Ако използвате modernizr.js, тогава изглежда, че предоставя pointerevents клас, който можете да използвате.

Освен ако нямате непреодолима нужда от тях и можете да си позволите да инвестирате много в това, силно бих препоръчал да не поддържате събития с указатели на Microsoft. За нас поддръжката им беше скъпо главоболие, а върнатата стойност беше минимална за нас.

person robocat    schedule 17.03.2016
comment
Благодаря! Аз ще го пробвам :) - person Xatpy; 19.03.2016