2014-06-05 109 views
3

我的程序識別mousemove event。我想要做的是讓我的程序適用於手機。用touchmove事件替換mousemove

這就是爲什麼我想將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"); 
    } 
} 

有沒有辦法,我能做到這一點很容易?

我已經讀過,相當於When to use touchmove vs mousemove?但我不知道如何處理mouseXmouseY

+0

使用類似[jQuery mobile](http://jquerymobile.com)或[hammer.js](http://eightmedia.github.io/hammer.js/)的觸摸庫來處理觸摸事件。事件對象將有你需要的所有信息... –

回答

0

toe.js - 一個輕量級的觸摸事件庫,工作得很好。 Hammerjs肯定有更多的定製,但toejs看起來更簡單。

並在您的代碼中有一個建議以避免不必要的event.stopPropagation,請參閱here