Skip to content

useElementHover

Category
Export Size
1.17 kB
Last Changed
2 months ago

Reactive element's hover state.

Demo

Usage

vue
<script setup lang="ts">
import { 
useElementHover
} from '@vueuse/core'
import {
useTemplateRef
} from 'vue'
const
myHoverableElement
=
useTemplateRef
<HTMLButtonElement>('myHoverableElement')
const
isHovered
=
useElementHover
(
myHoverableElement
)
</script> <template> <
button
ref
="
myHoverableElement
">
{{
isHovered
}}
</
button
>
</template>

Directive Usage

This function also provides a directive version via the @vueuse/components package. Learn more about the usage.

vue
<script setup lang="ts">
import { 
vElementHover
} from '@vueuse/components'
import {
shallowRef
} from 'vue'
const
isHovered
=
shallowRef
(false)
function
onHover
(
state
: boolean) {
isHovered
.
value
=
state
} </script> <template> <
button
v-element-hov
er="
onHover
">
{{
isHovered
? 'Thank you!' : 'Hover me' }}
</
button
>
</template>

You can also provide hover options:

vue
<script setup lang="ts">
import { 
vElementHover
} from '@vueuse/components'
import {
shallowRef
} from 'vue'
const
isHovered
=
shallowRef
(false)
function
onHover
(
hovered
: boolean) {
isHovered
.
value
=
hovered
} </script> <template> <
button
v-element-hov
er="
[
onHover
, {
delayEnter
: 1000 }]
">
<
span
>{{
isHovered
? 'Thank you!' : 'Hover me' }}</
span
>
</
button
>
</template>

Type Declarations

ts
export interface UseElementHoverOptions extends ConfigurableWindow {
  
delayEnter
?: number
delayLeave
?: number
triggerOnRemoval
?: boolean
} export declare function
useElementHover
(
el
:
MaybeRefOrGetter
<EventTarget | null | undefined>,
options
?: UseElementHoverOptions,
):
ShallowRef
<boolean>

Source

SourceDemoDocs

Contributors

Anthony Fu
IlyaL
Anthony Fu
webfansplz
IlyaL
Robin
Ben Lau
Joaquín Sánchez
Jelf
geekreal
cx33
Joe Maylor

Changelog

v13.4.0 on
319d8 - feat(shared): Introduce TimerHandle for setTimeout type (#4801)
v12.8.0 on
7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
v12.3.0 on
08cf5 - feat(onElementRemoval): new function, refactor useActiveElement useElementHover (#4410)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v11.0.0-beta.2 on
cf439 - feat: add options to the directive (#3897)
v10.0.0-beta.4 on
4d757 - feat(types)!: rename MaybeComputedRef to MaybeRefOrGetter

Released under the MIT License.

LIMITED OFFER
50% OFF Official Vue.js Developer Certification
Get Certified
16
hours
:
40
minutes
:
26
seconds
: