Skip to main content
Version: v8

Gestures

概要

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

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

Installation

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: event => onMoveHandler(event)
});

基本的なジェスチャー

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

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

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

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

ジェスチャーアニメーションの実装ガイドについては、Ionic Animations を使用したジェスチャーアニメーションを参照してください。

Name
GestureCallback(detail: GestureDetail) => boolean | void

インターフェース

GestureConfig

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

GestureDetail

Property説明
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

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