1

touchmoveブラウザでイベントを使用してマルチタッチ ジェスチャを検出する方法を学習しようとしています。touchmove イベントがキャプチャされると、現在のタッチ ポイントのリストを取得できます。ただし、これはジェスチャの検出にはあまり役立ちません。タッチイベントの履歴を取得したい。たとえば、現在の個別の各タッチ ポイントの前にある最後の 10 個のタッチ ポイント (利用可能な場合) のリストを取得したいと考えています。私が求めているものを視覚化するために、以下の図を描きます。

ここに画像の説明を入力

ユーザーが画面上で 2 本の別々の指を 2 つの異なるパターン (異なる手の指) でドラッグしているこのシナリオで述べたように、touchmoveイベント内で 2 つのタッチ ポイントしか受け取りません。ポイントABに到達する前に、2 つのポイントのそれぞれがどこにあったかの履歴にアクセスすることは可能ですか?

touchmoveイベントをキャプチャするための関連コードは次のとおりです。

document.addEventListener('touchmove', touchMove, false);

function touchMove(e) {
  console.log("length is: ", e.touches.length);
  e.preventDefault();
}

サード パーティのライブラリを提案しないでください。私の目標は、独自のカスタム真のマルチタッチ ジェスチャを定義して検出する方法を学ぶことです。

4

1 に答える 1

1

はい、以前の位置を配列に保存して、それらを反復処理できます。

  1. touchstartイベントでそれらの履歴をリセットします
  2. イベント内で、現在の座標をオブジェクトとして各配列にプッシュし、オブジェクトのプロパティでtouchmove識別します。配列にプッシュした後、slice(-10)`で使用可能なオブジェクトのおよびプロパティで座標にアクセスできます。identifierTouchpageXpageYTouchevent.targetTouches. To only store 10, call
于 2013-06-20T11:00:35.817 に答える