как использовать touchmove для дополнения mousemove для андроидов

О каких различиях следует помнить, когда я пытаюсь дополнить рабочую функцию, использующую перемещение мыши, чтобы она также работала на смартфонах.

До сих пор я узнал, что на моем Android я получаю

  • touchmove вместо mousemove,
  • touchstart вместо mousedown,
  • touchend вместо mouseup
  • event.touches[0].pageX вместо event.clientX
  • event.touches[0].pageY вместо event.clientY

Но этого недостаточно, код по-прежнему работает неправильно, что еще мне нужно узнать, прежде чем я смогу заставить его работать?

Пример: http://paint.puggan.se/paint/paint_201305311921.html

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

Вышеупомянутое отлично работает с мышью в Firefox для моего компьютера.

Выше не работает на моем андроиде, я вижу синие линии, но никогда не вижу желтых линий


person Puggan Se    schedule 31.05.2013    source источник
comment
Я не очень разбираюсь в Javascript, но может быть это потому, что у вас жестко закодирован уровень масштабирования?   -  person ozbek    schedule 31.05.2013
comment
где уровень масштабирования жестко запрограммирован? если вы ссылаетесь на мой javascript var zoom, это было просто имя, выбранное для переменной, которая масштабирует холст, андроид все еще может масштабировать как обычно   -  person Puggan Se    schedule 31.05.2013


Ответы (1)


Узнал еще одну разницу, и теперь она работает.

Когда срабатывает touchend, список event.touches пуст, и поэтому event.touches[0] терпит неудачу.

рабочая версия примера выше http://paint.puggan.se/paint/paint_201306011919.html

person Puggan Se    schedule 01.06.2013
comment
Привет, у меня такая же беда. Я уже заменил все touchmove на mousemove, touchstart на mousedown и touchend на mouseup. Но это все еще не работает в моем веб-просмотре Android, я не мог найти ничего, что могло бы помочь. поэтому я надеюсь, что вы могли бы сказать, как я могу решить эту проблему, пожалуйста. - person ; 23.02.2017