Замените mousemove событием touchmove.

Моя программа распознает mousemove event. Что я хотел бы сделать, так это заставить мою программу работать на мобильных устройствах.

Вот почему я хотел бы преобразовать событие mousemove в touchmove event.

Мой код пока такой:

var d=ctx.getImageData(0,0,canvas.width,canvas.height).data;
$hit=$("#hit");
$("#canvas").mousemove(function(e){handleMouseMove(e);});

tolerance = 20;
function handleMouseMove(e){

  e.preventDefault();
  e.stopPropagation();
  mouseX=parseInt(e.clientX-offsetX);
  mouseY=parseInt(e.clientY-offsetY);
  var isHit=d[(mouseY*cw+mouseX)*4+3]>tolerance;

  if(isHit){
    $hit.text("Yeahhhh");
  }else{
    //document.onmousemove = crash;
    $hit.text("Noooooooo");
  }
}

Есть ли способ, которым я могу сделать это легко?

Я читал, что это эквивалентно Когда использовать touchmove vs mousemove?, но я не знаю, как обращаться с mouseX и mouseY.


person Dimitra Micha    schedule 05.06.2014    source источник
comment
используйте сенсорную библиотеку, например jQuery mobile или hammer.js для обработки событий касания. Объекты событий будут содержать всю необходимую информацию...   -  person T J    schedule 05.06.2014


Ответы (2)


toe.js — облегченные сенсорные события библиотека, работает очень хорошо. Hammerjs определенно имеет больше настроек, но toejs выглядит проще.

и у вас есть предложение в вашем коде, чтобы избежать ненужного event.stopPropagation, см. здесь .

person Sony George    schedule 05.06.2014

Вы можете использовать jQuery UI Touch Punch для взлома событий jquery.

прочитайте это: http://touchpunch.furf.com/

person viam    schedule 05.06.2014