У меня есть простой пользовательский интерфейс, который позволяет пользователям настольных браузеров щелкать ячейку в сетке и, удерживая кнопку мыши, перемещать мышь, чтобы очень быстро выделить несколько ячеек. Я выполняю это с помощью событий mousedown
, mouseover
и mouseup
на document
и использую логический флаг, чтобы определить, удерживается ли кнопка мыши нажатой или нет. Он отлично работает в настольных браузерах.
Однако проблема связана с мобильными браузерами. Эти события мыши не существуют, и я знаю, что вместо этого нам нужно использовать события touch
, но после обширного поиска в Google, SO и т. д. я не могу найти последовательный, работоспособный способ сделать то же самое в мобильных браузерах. .
Самое близкое, что я видел, это захват начала с помощью touchstart
, а затем отслеживание движения пальца с помощью свойств touchmove
и evt.touches[0].clientX/Y
. Есть ли лучший/более простой способ сделать это, или мы вынуждены в основном проверять координаты экрана с помощью clientX/Y
, чтобы выяснить, над каким элементом DOM мы «зависаем», и соответственно выделяем элемент DOM?
touchstart
,touchmove
иtouchend
, очевидно, естьdocument.elementFromPoint(event.clientX, event.clientY);
, согласно этой теме - person Adam H   schedule 29.02.2020document.elementFromPoint
очень удобен. Это сэкономит много времени (надеюсь). Спасибо. - person HartleySan   schedule 29.02.2020