Skip to content

Tooltip 文字提示

Tooltip 组件常用于在鼠标悬停或点击时展示提示信息,适合用于提供简短的说明或帮助文本。

基础用法

使用 content 属性来设置鼠标悬停时的提示内容。

<template>
  <div class="basic block">
    <l-tooltip content="hello tooltip">
      <l-button> 激活 Tooltip </l-button>
    </l-tooltip>
  </div>
</template>

不同位置

通过 placement 属性来设置提示框的位置。placement 的格式为 [方向]-[对齐位置],其中四个方向为 topleftrightbottom,三种对齐方式为 startend,默认不设置对齐方式。

<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 属性设置触发提示的方式,支持 hoverclick 两种方式,默认触发方式为 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 的显示和隐藏。调用组件实例上的 showhide 方法即可控制提示框的显隐。



<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-optionspopper.js 参数设置object 参考 popper.js 文档{}
open-delay提示框显示的延迟时间(毫秒)number0
close-delay提示框消失的延迟时间(毫秒)number200
trigger触发提示框的方式,可选值为 hoverclickenum'hover' | 'click'`hover
manual是否开启手动触发模式booleanfalse
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