1. ホーム
  2. javascript

[解決済み] ピンチを検知する最も簡単な方法

2023-02-18 23:06:25

質問

これは ウェブアプリ であり、ネイティブアプリではありません。Objective-CのNSコマンドは使わないでください。

iOSで'pinch'イベントを検出する必要があります。問題は、ジェスチャまたはマルチタッチ イベントを行うために私が見たすべてのプラグインまたはメソッドは、(通常)jQuery を使用しており、太陽の下ですべてのジェスチャのために全体の追加のプラグインです。私のアプリケーションは巨大で、コードの枯れ木にとても敏感です。私が必要とするのはつまみを検出することだけであり、jGesture のようなものを使用することは、私の単純なニーズに対してあまりにも肥大化しすぎています。

さらに、手動でつまみを検出する方法について、私は限られた理解しか持っていません。両方の指の位置を得ることができますが、これを検出するための正しいミックスを得ることができないようです。誰か、ピンチを検出するだけの簡単なスニペットをお持ちですか?

どのように解決するのですか?

あなたは gesturestart , gesturechange そして gestureend イベント . これらは、2本以上の指が画面に触れるたびにトリガーされます。

ピンチ ジェスチャで何を行う必要があるかによって、アプローチを調整する必要があります。そのため scale の乗数は、ユーザーのピンチ ジェスチャがどの程度劇的であったかを判断するために調べることができます。以下を参照してください。 Apple の TouchEvent ドキュメント を参照してください。 scale プロパティがどのように動作するかの詳細については、Apple のドキュメントを参照してください。

node.addEventListener('gestureend', function(e) {
    if (e.scale < 1.0) {
        // User moved fingers closer together
    } else if (e.scale > 1.0) {
        // User moved fingers further apart
    }
}, false);

を傍受することもできます。 gesturechange イベントを傍受して、ピンチが発生したことを検出することもできます。