Tooltip 文字提示
Tooltip 组件常用于在鼠标悬停或点击时展示提示信息,适合用于提供简短的说明或帮助文本。
基础用法
使用 content
属性来设置鼠标悬停时的提示内容。
<template>
<div class="basic block">
<l-tooltip content="hello tooltip">
<l-button> 激活 Tooltip </l-button>
</l-tooltip>
</div>
</template>
不同位置
通过 placement
属性来设置提示框的位置。placement
的格式为 [方向]-[对齐位置]
,其中四个方向为 top
、left
、right
和 bottom
,三种对齐方式为 start
和 end
,默认不设置对齐方式。
<template>
<div class="basic block">
<l-tooltip content="hello tooltip" placement="top-start">
<l-button> top-start </l-button>
</l-tooltip>
<l-tooltip content="hello tooltip" placement="bottom-start">
<l-button> bottom-start </l-button>
</l-tooltip>
<l-tooltip content="hello tooltip" placement="left-start">
<l-button> left-start </l-button>
</l-tooltip>
<l-tooltip content="hello tooltip" placement="right-start">
<l-button> right-start </l-button>
</l-tooltip>
</div>
</template>
<style scoped>
.l-button {
margin-right: 8px;
}
</style>
触发方式
通过 trigger
属性设置触发提示的方式,支持 hover
和 click
两种方式,默认触发方式为 hover
。
<template>
<div class="basic block">
<l-tooltip content="hello tooltip" trigger="click">
<l-button> 点击激活 Tooltip </l-button>
</l-tooltip>
</div>
</template>
更多内容的文字提示
对于需要展示多行文本或自定义格式的提示信息,可以使用具名插槽 slot#content
,替代 content
属性。
<template>
<div class="basic block">
<l-tooltip trigger="click">
<l-button> 复杂 HTML 结构的Tooltip </l-button>
<template #content>
<h3>this is the title</h3>
<p>this is the content</p>
</template>
</l-tooltip>
</div>
</template>
手动触发
设置 manual
属性为 true
,可以手动控制 Tooltip 的显示和隐藏。调用组件实例上的 show
和 hide
方法即可控制提示框的显隐。
<script setup>
import { ref } from 'vue'
const tooltipRef = ref()
const open = () => {
tooltipRef.value?.show()
}
const close = () => {
tooltipRef.value?.hide()
}
</script>
<template>
<div class="basic block">
<l-tooltip content="hello tooltip" ref="tooltipRef" manual>
<l-button> 手动容器 </l-button>
</l-tooltip>
<br /><br />
<l-button type="primary" @click="open" style="margin-right: 8px"> 点击手动触发显示 </l-button>
<l-button type="danger" @click="close"> 点击手动触发隐藏 </l-button>
</div>
</template>
API
Attributes
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
content | 提示框展示的内容,可通过 slot#content 插槽覆盖 | string | '' |
placement | 提示框位置 | 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end' | bottom |
popper-options | popper.js 参数设置 | object 参考 popper.js 文档 | {} |
open-delay | 提示框显示的延迟时间(毫秒) | number | 0 |
close-delay | 提示框消失的延迟时间(毫秒) | number | 200 |
trigger | 触发提示框的方式,可选值为 hover 或 click | enum 'hover' | 'click'` | hover |
manual | 是否开启手动触发模式 | boolean | false |
transition | 自定义过渡动画名称 | string | '' |
Events
事件名 | 说明 | 参数 |
---|---|---|
visible-change | 当 Tooltip 显示或隐藏时触发 | boolean |
click-outside | 当点击 Tooltip 外部区域时触发 | boolean |
Slots
插槽名 | 说明 |
---|---|
default | 触发 Tooltip 显示的元素 |
content | 自定义提示内容 |
Exposes
方法名 | 说明 | 参数 |
---|---|---|
show | 手动显示 Tooltip | (event?: Event | undefined) => void |
hide | 手动隐藏 Tooltip | (event?: Event | undefined) => void |