Возможно, я только сейчас разглядел, а всё уже давно знают, но оказывается, что в Chrome 70 сделали вот такое: The ontouch* APIs default to disabled on desktop
Соответственно, если в своём коде вы опирались на наличие ключей 'ontouch*' в document или window, ваш код перестанет определять, что работает на touch-устройстве.
Я напоролся у себя на опечатку:
И когда первое условие перестало быть true, второе облажалось. Должно было быть navigator.maxTouchPoints
А вот, к примеру, в jQuery UI Touch Punch 0.2.3 используется вот такой код:
Соответственно, также теряется поддержка.
Соответственно, если в своём коде вы опирались на наличие ключей '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 используется вот такой код:
$.support.touch = 'ontouchend' in document;
Соответственно, также теряется поддержка.
KevlarBeaver
Мне кажется, jQuery или подобная библиотека, должна существовать, отслеживать подобные изменения и через призму своих интерфейсов выдавать фиксированный результат, чего бы там ни творили в одностороннем порядке разработчики браузеров. Я немного отошёл от фронтэнда, подскажите, есть ли такое сейчас на практике?
crmMaster
На практике у нас есть гугло и хром, который как в свое время винда с ие творят что хотят и никого не спрашивают.
bookworm Автор
Должны и наверное так и делают. Но здесь речь о легаси-коде. jQuery UI Touch Punch кажется не развивается, а может быть и не используется уже. В большинстве случаев jQuery я не использую. React, Angular, ванила. Иногда приходится определять нативно.
Вообще, с десктопами, которые имеют сенсорный экран, всегда как-то было не очень. Одно время я сталкивался с тем, что разработчики, определяя их как touch-устройства, поддерживали только touch-события и в результате возникали проблемы с управлением мышью. Особенно это касается drag-and-drop на touchstart/mousedown и touchend/mouseup.
Кстати, гугловцы там же рекомендуют: