2014-06-05 3 views
3

내 프로그램이 mousemove event을 인식합니다. 내가하고 싶은 것은 내 프로그램이 모바일 용으로 작동하도록하는 것이다.mousemove를 touchmove 이벤트로 바꿉니다.

그래서 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 모바일] (http://jquerymobile.com) 또는 [hammer.js] (http://eightmedia.github.io/hammer.js/)와 같은 터치 라이브러리를 사용하십시오. 이벤트 객체는 필요한 모든 정보를 갖습니다 ... –

답변

0

toe.js - 가벼운 터치 이벤트 라이브러리는 꽤 잘 작동합니다. Hammerjs는 더 많은 맞춤 설정을하고 있지만 toejs는 더 단순 해 보입니다.

및 불필요한 event.stopPropagation을 피하기 위해 코드에 제안 사항이 있습니다 (here 참조).