useSwipe
基於 TouchEvents
的響應式滑動偵測。
範例
方向:無
lengthX: 0 | lengthY: 0
用法
vue
<script setup>
import { useTemplateRef } from 'vue'
const el = useTemplateRef('el')
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 {
/**
* @deprecated No longer need this Vue 3's browser targets all supporting passive event listeners.
*
* This flag will always return `true` and be removed in the next major version.
*/
isPassiveEventSupported: boolean
isSwiping: ShallowRef<boolean>
direction: ComputedRef<UseSwipeDirection>
coordsStart: Readonly<Position>
coordsEnd: Readonly<Position>
lengthX: ComputedRef<number>
lengthY: ComputedRef<number>
stop: () => void
}
/**
* Reactive swipe detection.
*
* @see https://vueuse.dev.org.tw/useSwipe
* @param target
* @param options
*/
export declare function useSwipe(
target: MaybeRefOrGetter<EventTarget | null | undefined>,
options?: UseSwipeOptions,
): UseSwipeReturn
原始碼
貢獻者
更新日誌
v12.8.0
於 2025/3/5v12.4.0
於 2025/1/10v12.0.0-beta.1
於 2024/11/21v11.3.0
於 2024/11/21v10.7.0
於 2023/12/5v10.1.0
於 2023/4/22v10.0.0-beta.4
於 2023/4/134d757
- feat(types)!: 將 MaybeComputedRef
重命名為 MaybeRefOrGetter
v10.0.0-beta.0
於 2023/3/14f285c
- fix!: 使用字面量作為滑動方向,而不是枚舉