Как отличить полноценную мышь/татч от кликов и событий, сгенеренных Opera Mini/другими браузерами без мыши/тача?
Я делаю браузерную игру в 3Д, с управлением клавой/кнопками. На компе с мышкой/тачем срабатывание движения по mousedown/mouseup (touchstart/touchend), а для кнопочников привязан клик. Проблема в том, что после длительного нажатия вызывается ещё и клик, что очень заметно, так как по клику поворот/движение больше, чем за длительность одного круга цикла (чтобы на компах/тачах было плавно, а на кнопочных не так утомительно). То есть я зажимаю кнопку, плавно поворачиваюсь, отпускаю, и меня резко дёргает вправо/влево в 3Д пространстве (туда, куда я нажимал).
Я сначала попробовал блокать клики на кнопках по событию mousemove. Но этим событием сопровождался клик.
Таким образом, я блокал клики по сопутствующему событию, возникавшему от клика.
Я уже два дня мучаюсь с этой проблемой и в итоге понял, что мне необходима помощь.
замеряй время между началом touch.. и mousedown и если оно больше определенного, отключай реакцию на следующий клик (так и заведи себе переменную - время последнего тач события и на на клике вычисляй из текущего времени и сохраненного разницу, при попадании в определенные границы пропускай этот клик)