- PVSM.RU - https://www.pvsm.ru -

Почему на touch-ноутбуках некоторые SPA перестали поддерживать touch-события

Возможно, я только сейчас разглядел, а всё уже давно знают, но оказывается, что в Chrome 70 сделали вот такое: The ontouch* APIs default to disabled on desktop [1]

Соответственно, если в своём коде вы опирались на наличие ключей 'ontouch*' в document или window, ваш код перестанет определять, что работает на touch-устройстве.

Я напоролся у себя на опечатку:

var isTouchDevice = (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));

И когда первое условие перестало быть true, второе облажалось. Должно было быть navigator.maxTouchPoints

А вот, к примеру, в jQuery UI Touch Punch 0.2.3 [2] используется вот такой код:

  $.support.touch = 'ontouchend' in document;

Соответственно, также теряется поддержка.

Автор: bookworm

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/298394

Ссылки в тексте:

[1] The ontouch* APIs default to disabled on desktop : https://www.chromestatus.com/features/4764225348042752

[2] jQuery UI Touch Punch 0.2.3: https://raw.githubusercontent.com/furf/jquery-ui-touch-punch/master/jquery.ui.touch-punch.js

[3] Источник: https://habr.com/post/429052/?utm_campaign=429052