множественные касания :событие touchend срабатывает только тогда, когда происходит touchmove

Я хотел бы добавить некоторые функции мультитач в свое приложение javascript, когда к нему обращаются с устройства ios (и, возможно, позже Android ).

Я хочу предоставить ShiftKey -как функциональность :пользователь может удерживать кнопку на экране одним пальцем, и пока эта кнопка нажата, поведение касания на остальной части экран немного отличается от классического тапа.

Проблема, с которой я сталкиваюсь, заключается в том, что я не получаю никакого события touchend для постукивающего пальца, если только touchmove не запускается для первого пальца, удерживающего shiftkey кнопка.

Поскольку экран очень чувствителен, события touchmove легко запускаются, и в большинстве случаев все работает нормально.

Но когда палец пользователя слишком неподвижен, постукивание не обнаруживается до тех пор, пока пользователь немного не шевельнет пальцем. Это вызывает переменную «задержку» между постукиванием и действием, происходящим на экране (. Задержка может варьироваться и длиться несколько секунд, если пользователь очень спокоен ). Я предполагаю, что эта задержка заставит пользователя нажать снова и, таким образом, запустить действие во второй раз, чего я не хочу!

Вы можете протестировать его здесь с вашим iPad/iPhone:http://jsfiddle.net/jdeXH/8/

Попробуйте сделать так, чтобы тело оставалось зеленым в течение нескольких секунд, удерживая палец на голубом div и нажимая на красный div.

Следует ли ожидать такого поведения? Есть ли какое-то известное решение проблемы? Я ожидал, что событие touchend будет запущено сразу же, как только палец будет удален с экрана.

я тестировал это с iOS 5.1.1 (ipad1 и iphone4s)

edit :нашел аналогичный вопрос Multitouch touchEvents не запускается должным образом в Safari Mobile

11
задан Community 23 May 2017 в 12:01
поделиться