コンテンツへスキップ

useSwipe

カテゴリー
エクスポートサイズ
996 B
最終更新日
先週

TouchEvents に基づいたリアクティブなスワイプ検出。

デモ

右にスワイプ

方向: なし
lengthX: 0 | lengthY: 0

使用方法

vue
<script setup>
const el = ref(null)
const { isSwiping, direction } = useSwipe(el)
</script>

<template>
  <div ref="el">
    Swipe here
  </div>
</template>

型宣言

型宣言を表示
typescript
export type UseSwipeDirection = "up" | "down" | "left" | "right" | "none"
export interface UseSwipeOptions extends ConfigurableWindow {
  /**
   * Register events as passive
   *
   * @default true
   */
  passive?: boolean
  /**
   * @default 50
   */
  threshold?: number
  /**
   * Callback on swipe start
   */
  onSwipeStart?: (e: TouchEvent) => void
  /**
   * Callback on swipe moves
   */
  onSwipe?: (e: TouchEvent) => void
  /**
   * Callback on swipe ends
   */
  onSwipeEnd?: (e: TouchEvent, direction: UseSwipeDirection) => void
}
export interface UseSwipeReturn {
  isPassiveEventSupported: boolean
  isSwiping: Ref<boolean>
  direction: ComputedRef<UseSwipeDirection>
  coordsStart: Readonly<Position>
  coordsEnd: Readonly<Position>
  lengthX: ComputedRef<number>
  lengthY: ComputedRef<number>
  stop: () => void
}
/**
 * Reactive swipe detection.
 *
 * @see https://vueuse.dokyumento.jp/useSwipe
 * @param target
 * @param options
 */
export declare function useSwipe(
  target: MaybeRefOrGetter<EventTarget | null | undefined>,
  options?: UseSwipeOptions,
): UseSwipeReturn

ソース

ソースデモドキュメント

貢献者

Anthony Fu
丶远方
Amirreza Zarkesh
lstoeferle
IlyaL
Anthony Fu
Alexey Istomin
Jelf
云游君
Shinigami
Alex Kozack

変更履歴

v12.0.0-beta.1 2024/11/21
0a9ed - feat!: Vue 2 のサポートを削除、バンドルを最適化、クリーンアップ (#4349)
v11.3.0 2024/11/21
1bb54 - fix: スワイプ中に縦スクロールを許可する (#4323)
v10.7.0 2023/12/5
fccf2 - feat: 依存関係をアップグレード (#3614)
v10.1.0 2023/4/22
af3ca - fix: 複数タッチを無視 (#2996)
995aa - fix: 複数タッチを無視 (#2994)
v10.0.0-beta.4 2023/4/13
4d757 - feat(types)!: MaybeComputedRefMaybeRefOrGetter にリネーム
v10.0.0-beta.0 2023/3/14
f285c - fix!: スワイプ方向の列挙型の代わりにリテラルを使用
08c21 - feat(useSwipe, usePointerSwipe, useTransition): ツリーシェイキングを改善 (#2863)

MIT License でリリースされています。