Skip to content
On this page

useMouseInElement

Distance in pixels from an element

Parameters

typescript
import { useMouseInElement } from '@elonehoo/pistachio'

useMouseInElement(element, options?, wait?)
import { useMouseInElement } from '@elonehoo/pistachio'

useMouseInElement(element, options?, wait?)
ParametersTypeRequiredDefaultDescription
elementRef<HTMLElement> | HTMLElementtrueElement
optionsboolean | AddEventListenerOptionsfalse{passive: true}Listener options
waitnumberfalseundefinedDebounce event in ms

State

The useMouseInElement function exposes the following reactive state:

typescript
import { useMouseInElement } from '@elonehoo/pistachio'

const { distance } = useMouseInElement()
import { useMouseInElement } from '@elonehoo/pistachio'

const { distance } = useMouseInElement()
StateTypeDescription
distanceComputed<number>Distance in pixels from Element center

Methods

The useMouseInElement function exposes the following methods:

typescript
import { useMouseInElement } from '@elonehoo/pistachio'

const { remove } = useMouseInElement()
import { useMouseInElement } from '@elonehoo/pistachio'

const { remove } = useMouseInElement()
SignatureDescription
removeManually removes the event listener

Example

Mouse distance: -1px
vue
<script setup lang="ts">
import { ref } from 'vue'
import { useMouseInElement } from '@elonehoo/pistachio'

const el = ref(null)
const { distance } = useMouseInElement(el)
</script>

<template>
  <div>
    Mouse distance: <b>{{ distance }}px</b>
    <div ref="el" style="height: 10px; width: 10px; background: #99CC99" />
  </div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useMouseInElement } from '@elonehoo/pistachio'

const el = ref(null)
const { distance } = useMouseInElement(el)
</script>

<template>
  <div>
    Mouse distance: <b>{{ distance }}px</b>
    <div ref="el" style="height: 10px; width: 10px; background: #99CC99" />
  </div>
</template>

Released under the MIT License.