Получавате ли 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