Поддерживают ли браузеры на рабочем столе сенсорные события? - PullRequest
6 голосов
/ 22 ноября 2011

Я пытаюсь освоить HTML5, создав прототип чрезвычайно простого приложения для рисования, используя <canvas> и сенсорные события, такие как ontouchstart и ontouchmove.

.

Это нормально отображается и работает в эмуляторе Android, где я использую щелчки мыши для имитации сенсорных событий. Тем не менее, он не работает вообще при работе в моем настольном браузере (Safari 5.1.1, Firefox 7 в Windows).

Я думал, что события щелчка мыши будут интерпретироваться как события касания, как при запуске в эмуляторе.

Интересно, а может быть, браузеры для настольных компьютеров просто не поддерживают сенсорные события?

Ответы [ 3 ]

10 голосов
/ 22 ноября 2011

На самом деле все наоборот. Мобильные браузеры преобразуют события касания в мышь для поддержки предыдущих версий. Если он должен работать как на мобильном, так и на настольном компьютере, и вам не нужны сенсорные события, вы можете просто использовать события мыши. В противном случае связывайте события касания и мыши, а событие касания отменяет событие мыши. Таким образом, на мобильных устройствах сенсор срабатывает, а мышь - нет. На рабочем столе не срабатывает тач, и мышь срабатывает.

Для плова, вот простой пример отмены события нажатия на мобильных устройствах. Обратите внимание, что вопрос заключается больше в рисовании, которое включало бы перетаскивание кликов, что потребовало бы немного больше кода для обнаружения, но основная идея та же - привязать события, которые вам нужно обработать. Тогда e.preventdefault() остановит мобильные браузеры для эмуляции событий типа клика.

$('#element').on('touchend click', function(e){

   // Do your onclick action now

   // cancel the onclick firing
   e.preventDefault();
});
3 голосов
/ 22 ноября 2011

Firefox 6 и выше поддерживает сенсорные события. Смотрите таблицу совместимости здесь .

Статья MDN о событиях Touch

EDIT: вы тестируете с сенсорным экраном или мышью? События мыши не преобразуются автоматически в события касания. См. этот пост о том, как имитировать сенсорные события с помощью мыши

0 голосов
/ 22 ноября 2011

ontouchstart будет дополнением к версии webkit для iPhone для javascript.Вы можете проверить это, но только на эмуляторе.

...