div中的TouchEvent / MouseEvent本地位置

时间:2013-07-30 14:59:55

标签: javascript position touch mouseevent touch-event

我一直在开发一个HTML5应用程序,现在我面临一个相当困难的问题,在适当的坐标系中在目标div内获得适当的局部触摸/鼠标位置。

StackOverflow上有很多解决方案,但事情并不那么容易。

“经典”解决方案是计算目标偏移并从pageX和pageY位置减去它。许多人使用JQuery offset函数,但在页面滚动并包含嵌套的缩放div时,我们在iOS上发现它有bug(1.8.3)。

情况更复杂,因为不仅有嵌套的缩放div(CSS zoom属性),而且还有不同CSS转换(x和y转换)的图层。

最后,我们编写了自己的函数来计算目标div中的本地鼠标/触摸位置(使用WebKitCSSMatrixMSCSSMatrix和其他...)。它几乎可以很好地工作,但在某些情况下仍然不完美 - 尤其是当存在嵌套的缩放div时。

所以我的问题是,考虑到上述要求,是否有一些通用的解决方案/库来计算目标div内的局部触摸/鼠标位置?

感谢。

美好的一天......

2 个答案:

答案 0 :(得分:0)

在鼠标事件中,您将有5个属性对可供选择。

这是一个很好的browser quirks reference解释了差异:

以下是他们详细介绍的3个

  • pageX/Y以CSS像素为单位给出相对于元素的坐标。
  • clientX/Y以CSS像素为单位给出相对于视口的坐标。
  • screenX/Y以设备像素为单位给出相对于屏幕的坐标。

答案 1 :(得分:-1)

如果你使用event.offsetX和event.offsetY,那应该这样做。 (对不起,我知道它的旧)