我一直在开发一个HTML5应用程序,现在我面临一个相当困难的问题,在适当的坐标系中在目标div内获得适当的局部触摸/鼠标位置。
StackOverflow上有很多解决方案,但事情并不那么容易。
“经典”解决方案是计算目标偏移并从pageX和pageY位置减去它。许多人使用JQuery offset
函数,但在页面滚动并包含嵌套的缩放div时,我们在iOS上发现它有bug(1.8.3)。
情况更复杂,因为不仅有嵌套的缩放div(CSS zoom
属性),而且还有不同CSS转换(x和y转换)的图层。
最后,我们编写了自己的函数来计算目标div中的本地鼠标/触摸位置(使用WebKitCSSMatrix
,MSCSSMatrix
和其他...)。它几乎可以很好地工作,但在某些情况下仍然不完美 - 尤其是当存在嵌套的缩放div时。
所以我的问题是,考虑到上述要求,是否有一些通用的解决方案/库来计算目标div内的局部触摸/鼠标位置?
感谢。
美好的一天......
答案 0 :(得分:0)
在鼠标事件中,您将有5个属性对可供选择。
这是一个很好的browser quirks reference解释了差异:
以下是他们详细介绍的3个
pageX/Y
以CSS像素为单位给出相对于元素的坐标。clientX/Y
以CSS像素为单位给出相对于视口的坐标。screenX/Y
以设备像素为单位给出相对于屏幕的坐标。答案 1 :(得分:-1)
如果你使用event.offsetX和event.offsetY,那应该这样做。 (对不起,我知道它的旧)