Skip to content

usePointer

类别
导出体积
1.03 kB
上次更改
last week

响应式的指针状态

示例

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

基本用法

ts
import { 
usePointer
} from '@vueuse/core'
const {
x
,
y
,
pressure
,
pointerType
} =
usePointer
()

组件用法

默认情况下,该组件将跟踪 window 上的指针。

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>

类型声明

显示类型声明
ts
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 { /** * 监听的指针类型。 * * @default ['mouse', 'touch', 'pen'] */
pointerTypes
?:
PointerType
[]
/** * 初始值 */
initialValue
?:
MaybeRef
<
Partial
<UsePointerState>>
/** * @default window */
target
?:
MaybeRef
<EventTarget | null | undefined> | Document | Window
} /** * 响应式指针状态 * * @see https://vueuse.org/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
broBinChen
SerKo
IlyaL
Anthony Fu
cunzaizhuyi
丶远方
vaakian X
Jelf
zz

更新日志

8c521 - feat(components)!: refactor components and make them consistent (#4912)
7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
ee425 - fix: add pointerup event for pressure field (#3217)