用touchmove事件替换mousemove事件

3

我的程序识别 mousemove 事件。我想要做的是让我的程序适用于移动设备。

因此,我希望将 mousemove 事件转换为 touchmove 事件

到目前为止,我的代码是这样的:

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");
  }
}

有没有一种简单的方法可以做到这一点?

我已经阅读了等价物When to use touchmove vs mousemove?但我不确定如何处理mouseXmouseY


使用类似于jQuery mobilehammer.js的触摸库来处理触摸事件。事件对象将包含您所需的所有信息... - T J
2个回答

0

toe.js - 一个轻量级的触摸事件库,运行效果很好。Hammerjs 明显更加可定制,但是 toejs 看起来更简单。

并且在你的代码中有一个建议,可以避免不必要的 event.stopPropagation,请看这里


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接