2013-06-18 2 views
2

올바른 터치 좌표 좌표를 얻는 데 문제가 있습니다. 이건 내 마크 업캔버스 터치 이벤트의 올바른 좌표 얻기

<div class="board"> 
<canvas width="595" height="595" id="bgCanvas"></canvas> 
<canvas width="595" height="595" id="liCanvas"></canvas> 
</div> 

CSS의

.board{ 
width:595px; 
height:595px; 
position:absolute; 
display:block; 
left:21px; 
top:230px; 
} 
.board canvas{ 
position:absolute; 
} 

하고 코드, 내가 이미 liCanvas

evX= ev.targetTouches[0].pageX- liCanvas.offsetLeft 

에 터치 이벤트 리스너를 추가 한 점에 유의하지만 난을받지 못했습니다 오른쪽 값, 캔버스의 왼쪽 위 모서리를 터치 할 때 evX = 0을 원한다는 뜻입니다.

+1

아래에 주어진 사용하십시오 몸에 대한 원하는? – bugwheels94

+0

나는 evX를 위해 11, evy를 위해 116을 얻고있다. –

답변

4

offsetLeft이 보드에 대한 요소의 위치를 ​​제공합니다 제발 도와주세요하지만 당신은 그렇게 코드가 당신이지고 어떤 값을

function getOffsetLeft(elem) 
{ 
    var offsetLeft = 0; 
    do { 
     if (!isNaN(elem.offsetLeft)) 
     { 
      offsetLeft += elem.offsetLeft; 
     } 
    } while(elem = elem.offsetParent); 
    return offsetLeft; 
} 

evX= ev.targetTouches[0].pageX- getOffsetLeft(liCanvas); 

Reference

+1

대단히 감사합니다. Ankit .. 지난 4 일 동안 붙어있었습니다. –

+0

@LamiaMehreen 정말 도움이된다면 대답 – bugwheels94

+0

의 왼쪽에있는 표시를 지워서 받아 들일 수 있습니다. 제대로 작동하지 않았다. 미안하다. –