メインコンテンツへスキップ
バージョン: v8

ジェスチャー

概要

Ionic ジェスチャーは、開発者がプラットフォームに依存しない方法で、アプリケーションのカスタムジェスチャーとインタラクションを構築できるようにするユーティリティです。開発者は、ReactやAngularのような特定のフレームワークを使用する必要はなく、Ionicアプリを構築する必要すらありません!開発者がIonic Frameworkのv5.0以降にアクセスできる限り、すべてのIonicアニメーションにアクセスできます。

複雑なジェスチャーを構築するには時間がかかる場合があります。カスタムジェスチャーを提供する他のライブラリは、多くの場合、過度に重く、マウスまたはタッチイベントをキャプチャして伝播させないことがあります。これにより、他の要素がスクロールやクリックできなくなる可能性があります。

インストール

Ionic CoreとJavaScriptを使用する開発者は、@ionic/coreの最新バージョンをインストールする必要があります。

import { createGesture } from 'https://cdn.jsdelivr.net/npm/@ionic/core@latest/dist/esm/index.mjs';

...

const gesture = createGesture({
el: elementRef,
threshold: 15,
gestureName: 'my-gesture',
onMove: ev => onMoveHandler(ev)
});

基本的なジェスチャー

この例では、アプリはion-content要素のジェスチャーをリッスンします。ジェスチャーの動きが開始されると、onStart関数が呼び出され、色付きのボックスシャドウを追加するためにion-cardにクラスが追加されます。ジェスチャーの動きが検出されると、onMove関数が呼び出され、アプリはion-card内に現在のジェスチャー情報を出力します。最後に、ジェスチャーの動きが終了すると、onEnd関数が呼び出され、カスタムクラスがion-cardから削除されます。

ダブルクリックジェスチャー

以下の例では、要素でのダブルクリックを検出できるようにする必要があります。threshold0に設定することで、ジェスチャーオブジェクトがクリックを検出できるようにします。さらに、ダブルクリックとしてカウントされるために連続して発生する必要があるクリックのしきい値を定義します。

ジェスチャーアニメーション

ジェスチャーアニメーションの実装に関するガイドをご覧ください:Ionicアニメーションを使用したジェスチャーアニメーション

名前
GestureCallback(detail: GestureDetail) => boolean | void

インターフェース

GestureConfig

プロパティデフォルト説明
elNode未定義ジェスチャーをリッスンする要素。
disableScrollboolean | undefinedfalsetrueの場合、ジェスチャーが有効になっている間、elでのスクロールが無効になります。
direction'x' | 'y' | undefined'x'特定の軸に沿った動きにジェスチャー検出を制限します。
gestureNamestring未定義作成するジェスチャーの名前。
gesturePrioritynumber | undefined0優先度が高いジェスチャーは、優先度が低いジェスチャーを上書きします。複数のジェスチャーが互いに衝突しないようにするのに役立ちます。
passiveboolean | undefinedtruetrueの場合、これはジェスチャーがpreventDefault()を呼び出さないことを示します。これは、スクロールパフォーマンスを向上させるために使用できます。詳細については、パッシブリスナーを参照してください。
maxAnglenumber | undefined40ジェスチャーを検出するときに許可する最大角度。
thresholdnumber | undefined10ジェスチャーが開始される前にポインターが移動する必要がある量を定義します。
blurOnStartboolean | undefined未定義trueの場合、ジェスチャーは、onStartコールバックをトリガーする前に、入力やテキストエリアなどのアクティブな選択可能な要素をぼかします。
canStartGestureCallback | undefined未定義ジェスチャーを開始できる場合にtrueを返すコールバック。
onWillStart(detail: GestureDetail) => Promise<void>未定義ジェスチャーが開始されようとしているときにトリガーされるコールバック。これはcanStartの後、onStartの前にトリガーされます。
onStartGestureCallback | undefined未定義ジェスチャーが開始されたときにトリガーされるコールバック。
onMoveGestureCallback | undefined未定義ジェスチャーの動きが検出されたときにトリガーされるコールバック。
onEndGestureCallback | undefined未定義ジェスチャーが終了したときにトリガーされるコールバック。これは通常、ポインターがリリースされたときです。
notCapturedGestureCallback | undefined未定義ジェスチャーがキャプチャされなかったときにトリガーされるコールバック。これは通常、優先度が高い競合するジェスチャーがある場合に発生します。

GestureDetail

プロパティ説明
typestring検出されたジェスチャーのタイプ。
startXnumberジェスチャーの開始x座標。
startYnumberジェスチャーの開始y座標。
startTimeStampnumberジェスチャーが開始されたタイムスタンプ。
currentXnumberジェスチャーの現在のx座標。
currentYnumberジェスチャーの現在のy座標。
velocityXnumberジェスチャーが現在x軸上で移動している速度。
velocityYnumberジェスチャーが現在y軸上で移動している速度。
deltaXnumberジェスチャーが開始されてからx軸上で移動した量。
deltaYnumberジェスチャーが開始されてからy軸上で移動した量。
timeStampnumberジェスチャーの現在のタイムスタンプ。
eventUIEventブラウザによってディスパッチされたネイティブイベント。詳細については、UIEventを参照してください。
dataany | undefinedユーザーが指定した任意のデータ。これは、任意のコールバックで設定および読み取ることができます。

メソッド

enable(enable: boolean = true) => void

ジェスチャーを有効または無効にします。

destroy() => void

ジェスチャーインスタンスを破棄し、ターゲット要素でのリッスンを停止します。