2016-05-18 1 views
0

Я играю с событиями касания, и я понял демо, которое создает и перемещает круг для каждого пальца. Нет проблем с iOS Safari, но Android Chrome всегда возвращает «0» в качестве идентификатора касания (https://developer.mozilla.org/en-US/docs/Web/API/Touch/identifier). Является ли это ошибкой, «выбором для защиты от пользователя» или другим? Есть ли способ обхода проблем?JS - почему touchEvent.identifier в Chrome всегда равен нулю?

Спасибо.

ответ

0

Это, похоже, связано с другим чтением спецификации W3C, чем у Apple в iOS Safari. Android Chrome дает идентификатор 0 для касания, когда только один палец касается экрана. Когда два пальца касаются, он дает им идентификаторы 0 и 1 и так далее. Это на самом деле соответствует формулировке W3C спецификации:

identifier of type long, readonly
An identification number for each touch point. When a touch point becomes active, it must be assigned an identifier that is distinct from any other active touch point. While the touch point remains active, all events that refer to it must assign it the same identifier.

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

Смежные вопросы