2012-07-02 102 views

回答

8

您可以使用clientX或pageX属性,看here

+11

是的,我明白了,谢谢。我找到了一种获得e.offsetX的方法。 e.offsetX = e.touches [0] .pageX - e.touches [0] .target.offsetLeft; e.offsetY = e.touches [0] .pageY - e.touches [0] .target.offsetTop; 我认为它与e.offsetX – EasonBlack

+1

相同这不会考虑元素上的任何变换,如旋转或缩放,就像offsetX一样。看起来,offsetX在变换之前给出元素本地坐标系中的坐标。 – tremby

1

正在对使用绑定元素canvas对jQuery的.on功能事件处理类似的问题(不知道的原因)。

我使用addEventListener通过绑定事件处理程序来解决它。处理程序中的event对象具有使用适当值定义的offsetX和offsetY。

希望它可以帮助...

+0

你可以进入更多的细节? – tremby

+0

@tremby你想知道什么具体内容? – Shubhansh

+0

我只是不明白你的答案。据我所知,至少根据规范,“Touch”对象没有'offsetX'和'offsetY'。你的答案表明你确实得到了他们,我想知道如何。 – tremby

9

基于在建议答复的意见正确答案:

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

这忽略任何转换,如旋转或缩放。另外请务必检查是否有任何接触。

相关问题