7

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

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

“经典”解决方案是计算目标偏移量并将其从 pageX 和 pageY 位置中减去。许多人使用 JQueryoffset函数,但我们发现它在 iOS 上的某些情况下存在错误(1.8.3),当页面滚动并包含嵌套的缩放 div 时。

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

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

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

谢谢。

祝大家有美好的一天...

4

2 回答 2

0

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

这是一个很好的浏览器怪癖参考,解释了差异:

这是他们详细介绍的3个

  • pageX/Y 以 CSS 像素为单位给出相对于元素的坐标。
  • clientX/Y以 CSS 像素为单位给出相对于视口的坐标。
  • screenX/Y以设备像素为单位给出相对于屏幕的坐标.
于 2013-07-30T15:08:36.537 回答
-1

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

于 2016-09-01T12:52:02.740 回答