2013-07-30 7 views
5

私はHTML5アプリケーションを開発していましたが、適切な座標系でターゲットdiv内に適切なローカルタッチ/マウス位置を取得するのはかなり難しい問題に直面しています。div内のTouchEvent/MouseEventローカル位置

StackOverflowには多くの解決策がありますが、それほど簡単ではありません。

"古典的な"解決策は、ターゲットオフセットを計算し、pageXおよびpageY位置からそれを減算することです。多くの人がJQuery offset機能を使用していますが、ページがスクロールされ、ネストされたズームされたdivが含まれている状況では、iOS上でバグがあります(1.8.3)。

ネストされたズームされたdiv(CSS zoomプロパティ)だけでなく、異なるCSS変換(xとyの変換)を持つレイヤーもあるため、状況はさらに複雑です。

最後に、目標divのローカルマウス/タッチ位置を計算する独自の関数を作成しました(WebKitCSSMatrixMSCSSMatrixなどを使用しています)。 'ほぼ'うまく動作しますが、まだ完璧ではありません。

私の質問は、上記の要件を考慮してターゲットdiv内のローカルタッチ/マウスの位置を計算するための一般的なソリューション/ライブラリがあるかどうかです。

ありがとうございました。すべての

ニース日...マウスイベントに

+0

興味のある特定のマウス/タッチイベントはありますか? pageXとpageYはCSSピクセルで測定されるので、ズームの影響を受けてはいけません。CSSピクセルはズームアウトを通して一定です。 –

答えて

0

あなたの中から選択する5プロパティペアを持つことになります。ここ

彼らは詳細

  • pageX/Yカバー3はCSSピクセルの要素に対する相対座標を与える:

    ここで違いを説明優れbrowser quirks referenceあります。

  • clientX/Yは、CSSピクセルでビューポートからの相対座標を返します。
  • screenX/Yは、デバイスピクセルの画面に対する座標を示します。
+0

ありがとうございました。それは非常に良い記事です。残念ながら、それは私の元の質問に対する答えではありません。 – MalcomCZ

-1

event.offsetXとevent.offsetYを使用すると、そのようにする必要があります。 (申し訳ありません、私はその古いことを知っています)

+0

タッチイベントにoffsetXまたはoffsetYはありません。 – Timmmm

+0

あなたは正しいです...私は何を考えていたのか分からない...笑 – carinlynchin