2013-07-30 49 views
5

我一直在開發一個HTML5應用程序,現在我正面臨一個相當困難的問題,在合適的座標系中獲取目標div內適當的本地觸摸/鼠標位置。TouchEvent/MouseEvent在div內的本地位置

在StackOverflow上有很多解決方案,但事情並不那麼容易。

「古典」解決方案是計算目標偏移量並從pageX和pageY位置中減去它。很多人使用JQuery offset函數,但是在某些情況下,當頁面滾動並且包含嵌套的縮放div時,我們發現iOS上有bug(1.8.3)。

由於不僅嵌套縮放div(CSS zoom屬性),而且具有不同CSS轉換(x和y轉換)的圖層,情況更爲複雜。

最後,我們寫了自己的函數來計算目標div中的本地鼠標/觸摸位置(使用WebKitCSSMatrixMSCSSMatrix和其他...)。它「幾乎」運作良好,但在某些情況下仍不完美 - 特別是當嵌套的縮放div時。

所以我的問題是,是否有一些通用的解決方案/庫來計算考慮上述要求的目標div內的本地觸摸/鼠標位置?

謝謝。

尼斯每天都...

+0

是否有您感興趣的特定鼠標/觸摸事件? pageX和pageY是用CSS像素測量的,所以它們不應該受到縮放的影響,如果事情正常工作,CSS像素在整個縮放過程​​中保持不變。 –

回答

0

上的鼠標事件,你將有5屬性對可供選擇。

這裏是一個極好的browser quirks reference解釋的區別:

下面是它們詳細

  • pageX/Y覆蓋3給出了相對於CSS像素元件中的座標。
  • clientX/Y給出了在CSS像素中相對於視口的座標。
  • screenX/Y給出了設備像素中相對於屏幕的座標。
+0

非常感謝。這是一篇非常好的文章。不幸的是,這不是我原來的問題的答案。 – MalcomCZ

-1

如果您使用event.offsetX和event.offsetY,應該這樣做。 (對不起,我知道它的舊版本)

+0

觸摸事件中沒有偏移量X或偏移量Y. – Timmmm

+0

你是對的...不知道我在想什麼......哈哈 – carinlynchin