2012-07-02 13 views

Respuesta

8

Puede utilizar clientX o pageX, ver here

+11

sí, ya veo, gracias. Y encontré la manera de obtener e.offsetX. e.offsetX = e.touches [0] .pageX - e.touches [0] .target.offsetLeft; e.offsetY = e.touches [0] .pageY - e.touches [0] .target.offsetTop; Creo que es lo mismo que e.offsetX – EasonBlack

+1

Esto no tiene en cuenta ninguna transformación en el elemento, como rotaciones o escala, como lo hace offsetX. offsetX da las coordenadas en el sistema de coordenadas local del elemento, antes de las transformaciones, parece. – tremby

1

estaba teniendo problema similar en el controlador de eventos usando la función de jQuery .on en canvas elemento de unión (no sé el motivo).

Lo resolví vinculando el controlador de eventos usando addEventListener. El objeto event en el controlador tiene offsetX y offsetY definidos con los valores adecuados.

creo que sirve ...

+0

¿Puedes entrar en más detalles? – tremby

+0

@tremby ¿Qué específico le gustaría saber? – Shubhansh

+0

Simplemente no entiendo tu respuesta. Por lo que puedo decir, los objetos 'Touch' no tienen' offsetX' y 'offsetY', al menos según la especificación. Su respuesta sugiere que los obtiene y me pregunto cómo. – tremby

9

La respuesta correcta sobre la base de los comentarios en la respuesta sugerida:

e.offsetX = e.touches[0].pageX - e.touches[0].target.offsetLeft;  
e.offsetY = e.touches[0].pageY - e.touches[0].target.offsetTop; 

Esto ignora cualquier transformación, tales como rotaciones o escalamiento. También asegúrese de verificar si hay algún toque.

Cuestiones relacionadas