跳到主要内容

useElementHover

分类
导出大小
1.17 kB
上次更改
4 个月前

响应式地获取元素的悬停状态。

演示

用法

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>

指令用法

此函数还通过 @vueuse/components 包提供了一个指令版本。了解更多用法

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>

你也可以提供悬停选项

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>

类型声明

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>

来源

源代码演示文档

贡献者

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

更新日志

8c521 - feat(components)!: 重构组件并使其保持一致 (#4912)
v13.4.0
319d8 - feat(shared): 为 setTimeout 类型引入 TimerHandle (#4801)
v12.8.0
7432f - feat(types): 废弃 MaybeRefMaybeRefOrGetter,转而使用 Vue 的原生类型 (#4636)
v12.3.0
08cf5 - feat(onElementRemoval): 新函数,重构 useActiveElement useElementHover (#4410)
0a9ed - feat!: 放弃对 Vue 2 的支持,优化打包并清理 (#4349)
cf439 - feat: 为指令添加选项 (#3897)

根据 MIT 许可证发布。