ā¬ ļø Back to Table of Contents
š useElementHover¶
š Analysis Summary¶
| Metric | Count |
|---|---|
| š§ Functions | 2 |
| š¦ Imports | 11 |
| š¢ Vue Composition API | 1 |
| š Interfaces | 1 |
š Table of Contents¶
š ļø File Location:¶
š packages/core/useElementHover/index.ts
š¦ Imports¶
| Name | Source |
|---|---|
TimerHandle |
@vueuse/shared |
MaybeRefOrGetter |
vue |
ShallowRef |
vue |
ConfigurableWindow |
../_configurable |
MaybeComputedElementRef |
../unrefElement |
computed |
vue |
shallowRef |
vue |
defaultWindow |
../_configurable |
onElementRemoval |
../onElementRemoval |
unrefElement |
../unrefElement |
useEventListener |
../useEventListener |
Vue Composition API¶
| Name | Type | Reactive Variables | Composables |
|---|---|---|---|
computed |
computed | none | none |
Functions¶
useElementHover(el: MaybeRefOrGetter<EventTarget | null | uā¦, options: UseElementHoverOptions): ShallowRef<boolean>¶
Parameters:
elMaybeRefOrGetter<EventTarget | null | undefined>optionsUseElementHoverOptions
Returns: ShallowRef<boolean>
Calls:
shallowRef (from vue)clearTimeoutsetTimeoutuseEventListener (from ../useEventListener)toggleonElementRemoval (from ../onElementRemoval)computed (from vue)unrefElement (from ../unrefElement)
Code
export function useElementHover(el: MaybeRefOrGetter<EventTarget | null | undefined>, options: UseElementHoverOptions = {}): ShallowRef<boolean> {
const {
delayEnter = 0,
delayLeave = 0,
triggerOnRemoval = false,
window = defaultWindow,
} = options
const isHovered = shallowRef(false)
let timer: TimerHandle
const toggle = (entering: boolean) => {
const delay = entering ? delayEnter : delayLeave
if (timer) {
clearTimeout(timer)
timer = undefined
}
if (delay)
timer = setTimeout(() => isHovered.value = entering, delay)
else
isHovered.value = entering
}
if (!window)
return isHovered
useEventListener(el, 'mouseenter', () => toggle(true), { passive: true })
useEventListener(el, 'mouseleave', () => toggle(false), { passive: true })
if (triggerOnRemoval) {
onElementRemoval(
computed(() => unrefElement(el as MaybeComputedElementRef)),
() => toggle(false),
)
}
return isHovered
}
Internal helpers¶
Declared inside another function in this file.
toggle(entering: boolean): void¶
Parameters:
enteringboolean
Returns: void
Calls:
clearTimeoutsetTimeout
Code
Interfaces¶
UseElementHoverOptions¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
delayEnter |
number |
ā | not shown |
delayLeave |
number |
ā | not shown |
triggerOnRemoval |
boolean |
ā | not shown |
Generated by Syntax Scribe