Skip to content

usePointer

類別
導出大小
959 B
上次變更
5 天前

響應式指標狀態。pointer state

範例

{
  "x": 0,
  "y": 0,
  "pointerId": 0,
  "pressure": 0,
  "tiltX": 0,
  "tiltY": 0,
  "width": 0,
  "height": 0,
  "twist": 0,
  "pointerType": null,
  "isInside": false
}

基本用法

js
import { usePointer } from '@vueuse/core'

const { x, y, pressure, pointerType } = usePointer()

元件用法

此函數也透過 @vueuse/components 套件提供無渲染元件版本。 瞭解更多關於用法的資訊

預設情況下,此元件將追蹤視窗上的指標

vue
<template>
  <UsePointer v-slot="{ x, y }">
    x: {{ x }}
    y: {{ y }}
  </UsePointer>
</template>

若要追蹤元素中的本地位置,請設定 target="self"

vue
<template>
  <UsePointer v-slot="{ x, y }" target="self">
    x: {{ x }} y: {{ y }}
  </UsePointer>
</template>

類型宣告

顯示類型宣告
typescript
export interface UsePointerState extends Position {
  pressure: number
  pointerId: number
  tiltX: number
  tiltY: number
  width: number
  height: number
  twist: number
  pointerType: PointerType | null
}
export interface UsePointerOptions extends ConfigurableWindow {
  /**
   * Pointer types that listen to.
   *
   * @default ['mouse', 'touch', 'pen']
   */
  pointerTypes?: PointerType[]
  /**
   * Initial values
   */
  initialValue?: MaybeRef<Partial<UsePointerState>>
  /**
   * @default window
   */
  target?: MaybeRef<EventTarget | null | undefined> | Document | Window
}
/**
 * Reactive pointer state.
 *
 * @see https://vueuse.dev.org.tw/usePointer
 * @param options
 */
export declare function usePointer(options?: UsePointerOptions): {
  isInside: ShallowRef<boolean, boolean>
  pressure: Ref<number, number>
  pointerId: Ref<number, number>
  tiltX: Ref<number, number>
  tiltY: Ref<number, number>
  width: Ref<number, number>
  height: Ref<number, number>
  twist: Ref<number, number>
  pointerType: Ref<PointerType | null, PointerType | null>
  x: Ref<number, number>
  y: Ref<number, number>
}
export type UsePointerReturn = ReturnType<typeof usePointer>

原始碼

原始碼範例文件

貢獻者

Anthony Fu
IlyaL
Anthony Fu
cunzaizhuyi
丶遠方
vaakian X
Jelf
zz

變更日誌

v12.8.0 on 3/5/2025
7432f - feat(types): 棄用 MaybeRefMaybeRefOrGetter,改用 Vue 原生類型 (#4636)
v12.0.0-beta.1 on 11/21/2024
0a9ed - feat!: 移除 Vue 2 支援,最佳化 bundle 並清理 (#4349)
v10.3.0 on 7/30/2023
ee425 - fix: 為 pressure 欄位新增 pointerup 事件 (#3217)

以 MIT 授權條款發布。