2012-07-02 7 views

Antwort

8

Sie clientX oder pageX verwenden können, finden here

+11

ja, ich sehe, danke. Und ich habe einen Weg gefunden, e.offsetX zu bekommen. e.offsetX = e.touches [0] .pageX - e.touches [0] .target.offsetLeft; e.offsetY = e.touches [0] .pageY - e.touches [0] .target.offsetTop; Ich denke, es ist das gleiche wie e.offsetX – EasonBlack

+1

Dies berücksichtigt keine Transformationen auf dem Element, wie Rotationen oder Skalierung, wie OffsetX tut. offsetX gibt die Koordinaten im lokalen Koordinatensystem des Elements vor den Transformationen an. – tremby

1

War Event-Handler mit jQuery .on Funktion auf canvas Element auf die Bindung ähnliches Problem mit (Setzen Sie den Grund nicht kennen).

Ich löste es durch Bindung Event-Handler mit addEventListener. Das Objekt event im Handler hat offsetX und offsetY mit den richtigen Werten definiert.

Hoffnung, es hilft ...

+0

Können Sie genauer ins Detail gehen? – tremby

+0

@tremby Was genau möchten Sie wissen? – Shubhansh

+0

Ich verstehe deine Antwort einfach nicht. Soweit ich sagen kann, haben 'Touch'-Objekte nicht' offsetX' und 'offsetY', zumindest entsprechend der Spezifikation. Ihre Antwort deutet darauf hin, dass Sie sie bekommen und ich frage mich wie. – tremby

9

Die richtige Antwort auf der Grundlage der Kommentare in der vorgeschlagenen Antwort:

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

Dies ignoriert alle Transformationen wie Drehungen oder Skalierung. Überprüfen Sie auch, ob es Berührungen gibt.