useMouse

useMouse

リアクティブなマウス位置

基本的な使い方

import { useMouse } from '@vueuse/core'

const { x, y, sourceType } = useMouse()

タッチはデフォルトで有効になっています。マウスの変化のみを検出するには、touchfalse に設定します。 dragover イベントはドラッグ中のマウス位置を追跡するために使用されます。

import { useMouse } from '@vueuse/core'
// ---cut---
const { x, y } = useMouse({ touch: false })

カスタムエクストラクタ

イベントから位置を取得するためのカスタムエクストラクタ関数を提供することも可能です。

import type { UseMouseEventExtractor } from '@vueuse/core'
import { useMouse, useParentElement } from '@vueuse/core'

const parentEl = useParentElement()

const extractor: UseMouseEventExtractor = event => (
  event instanceof MouseEvent
    ? [event.offsetX, event.offsetY]
    : null
)

const { x, y, sourceType } = useMouse({ target: parentEl, type: extractor })

コンポーネントでの使用

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