Skip to content
On this page

usePointerSwipe

Category
Last Changed
3 months ago

Reactive swipe detection based on PointerEvents.

Demo

Swipe

Usage

<script setup>
import { ref } from 'vue'
import { usePointerSwipe } from '@vueuse/core'

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

<template>
  <div ref="el">
    Swipe here
  </div>
</template>
<script setup>
import { ref } from 'vue'
import { usePointerSwipe } from '@vueuse/core'

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

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

Type Declarations

Show Type Declarations
export interface PointerSwipeOptions {
  /**
   * @default 50
   */
  threshold?: number
  /**
   * Callback on swipe start
   */
  onSwipeStart?: (e: PointerEvent) => void
  /**
   * Callback on swipe move
   */
  onSwipe?: (e: PointerEvent) => void
  /**
   * Callback on swipe end
   */
  onSwipeEnd?: (e: PointerEvent, direction: SwipeDirection) => void
  /**
   * Pointer types that listen to.
   *
   * @default ['mouse', 'touch', 'pen']
   */
  pointerTypes?: PointerType[]
}
export interface PointerSwipeReturn {
  readonly isSwiping: Ref<boolean>
  direction: Readonly<Ref<SwipeDirection | null>>
  readonly posStart: Position
  readonly posEnd: Position
  distanceX: Readonly<Ref<number>>
  distanceY: Readonly<Ref<number>>
  stop: () => void
}
/**
 * Reactive swipe detection based on PointerEvents.
 *
 * @see https://vueuse.org/usePointerSwipe
 * @param target
 * @param options
 */
export declare function usePointerSwipe(
  target: MaybeRef<HTMLElement | null | undefined>,
  options?: PointerSwipeOptions
): PointerSwipeReturn
export interface PointerSwipeOptions {
  /**
   * @default 50
   */
  threshold?: number
  /**
   * Callback on swipe start
   */
  onSwipeStart?: (e: PointerEvent) => void
  /**
   * Callback on swipe move
   */
  onSwipe?: (e: PointerEvent) => void
  /**
   * Callback on swipe end
   */
  onSwipeEnd?: (e: PointerEvent, direction: SwipeDirection) => void
  /**
   * Pointer types that listen to.
   *
   * @default ['mouse', 'touch', 'pen']
   */
  pointerTypes?: PointerType[]
}
export interface PointerSwipeReturn {
  readonly isSwiping: Ref<boolean>
  direction: Readonly<Ref<SwipeDirection | null>>
  readonly posStart: Position
  readonly posEnd: Position
  distanceX: Readonly<Ref<number>>
  distanceY: Readonly<Ref<number>>
  stop: () => void
}
/**
 * Reactive swipe detection based on PointerEvents.
 *
 * @see https://vueuse.org/usePointerSwipe
 * @param target
 * @param options
 */
export declare function usePointerSwipe(
  target: MaybeRef<HTMLElement | null | undefined>,
  options?: PointerSwipeOptions
): PointerSwipeReturn

Source

SourceDemoDocs

Contributors

Anthony Fu
Jeffrey Li
MinatoHikari
Ilya Komichev
lstoeferle

Changelog

v6.4.1 on 9/17/2021
4343c - feat: support pointerTypes
v6.4.0 on 9/17/2021
9a45b - fix: exports common types
v5.3.0 on 8/9/2021
5bbea - fix: fix types
v5.1.3 on 7/7/2021
e736a - fix: set capture on event target instead of root element (#605)
v5.1.0 on 7/5/2021
d09fb - fix: use style.setProperty instead of setAttribute (#583)
v4.11.2 on 5/30/2021
eb142 - feat: new function (#536)
usePointerSwipe has loaded