javascript, есть ли способ установить (меньший) порог для события touchmove

#javascript #events #threshold #touchmove

#javascript #Мероприятия #пороговое значение #touchmove

Вопрос:

В этот момент мое устройство сенсорного ввода генерирует touchmove событие (после touchstart события) ПОСЛЕ перемещения нескольких пикселей (я думаю, это около 10 пикселей) Это означает, что при использовании этой техники для рисования пальцем на холсте первая часть кривой всегда представляет собой прямую линию длиной 10 пикселей. Я хочу touchmove событие всего через 2 или 3 пикселя после touchstart события. Есть ли какой-то порог, которым я могу манипулировать?

Комментарии:

1. Вызывается ли событие касания несколько раз в течение этих 10 пикселей? Если это так, вы можете просто использовать их для отслеживания движения.

2. Попробуйте добавить CSS touch-action: pinch-zoom; в свой холст. Это позволит пользователю увеличивать масштаб одним касанием двумя пальцами, но не панорамировать вид одним пальцем. В частности, это означает, что браузеру не нужно «ждать», чтобы различать различные типы касаний, и он может реагировать мгновенно. В качестве альтернативы, «обновите» свой код, чтобы использовать pointer события вместо touch .

Ответ №1:

Как только вы получаете touchstart событие, добавьте прослушиватель, который записывает pointermove события, сохраняя координаты события в массиве.

Затем, когда вы получите свое touchmove событие, у вас будет история расположения указателя с момента touchstart его получения.

Комментарии:

1. Спасибо, что указали мне на событие pointer. Я никогда не слышал об этом. Мне удалось переписать фрагмент кода, найденный здесь: developer.mozilla.org/en-US/docs/Web/API/Pointer_events /…

2. @StefanHesman Отлично. Этот инструмент, который я написал, может быть удобным, он отображает все события указателя (и MouseEvent ‘click’): тест Терри событий указателя