Skip to content

Tooltip 文字提示

用于围绕一个触发元素显示轻量提示信息,支持 hoverclick、手动控制和自定义内容。

基础用法

vue
<lk-tooltip content="提示内容">
  <lk-button>悬停</lk-button>
</lk-tooltip>

点击触发

vue
<lk-tooltip content="点击触发" trigger="click">
  <lk-button>点击看看</lk-button>
</lk-tooltip>

自定义内容

vue
<lk-tooltip trigger="click">
  <lk-button>自定义内容</lk-button>
  <template #content>
    <view style="display:flex;align-items:center;gap:12rpx">
      <view style="width:20rpx;height:20rpx;border-radius:50%;background:#16a34a" />
      <text>支持复杂内容</text>
    </view>
  </template>
</lk-tooltip>

位置与宽度

vue
<template>
  <lk-tooltip content="Top" placement="top"><lk-button>Top</lk-button></lk-tooltip>
  <lk-tooltip content="Bottom" placement="bottom" :width="260"><lk-button>Bottom</lk-button></lk-tooltip>
</template>

手动控制与常驻显示

vue
<script setup lang="ts">
import { ref } from 'vue'

const open = ref(false)
</script>

<template>
  <lk-tooltip :model-value="open" trigger="manual" content="手动控制">
    <lk-button @click="open = !open">切换</lk-button>
  </lk-tooltip>

  <lk-tooltip content="我会一直显示" always>
    <lk-button>常驻</lk-button>
  </lk-tooltip>
</template>

推荐示例

1) 直接复用项目 Demo(推荐)

vue
<script setup lang="ts">
import TooltipDemo from '@/components/demos/tooltip-demo.vue'
</script>

<template>
  <TooltipDemo />
</template>

2) 在业务页中按需组合

vue
<template>
  <view class="page-demo">
    <lk-tooltip />
  </view>
</template>

API

Props

参数说明类型默认值
content提示文本string''
zIndex层级number600
trigger触发方式hover | click | manualhover
placement展示位置top | bottom | left | righttop
modelValue手动控制显示状态booleanundefined
disabled是否禁用booleanfalse
always是否常驻显示booleanfalse
defaultOpen初次挂载时是否默认展开一次booleanfalse
offset与触发元素的间距(rpx)number8
width浮层宽度number | stringundefined
showDelay显示延时(ms)number80
hideDelay隐藏延时(ms)number80
animation动画预设名称keyof ANIMATION_PRESETSundefined
animationType动画类型TransitionConfig['name']undefined
duration动画持续时间number180
delay动画延迟number0
easing缓动函数TransitionConfig['easing']ease-out
id根节点 idstring''
customClass根节点自定义类名string | object | array
customStyle根节点自定义样式string | object

Events

事件名说明参数
update:modelValue显示状态变化(value: boolean) => void
show显示时触发({ trigger, event }) => void
hide隐藏时触发({ trigger, event }) => void
open显示时触发,语义化别名({ trigger, event }) => void
close隐藏时触发,语义化别名({ trigger, event }) => void
click-trigger点击触发区域时触发(event?: Event) => void
mouseenter-trigger鼠标进入触发区域时触发(event?: Event) => void
mouseleave-trigger鼠标离开触发区域时触发(event?: Event) => void
mouseenter-content鼠标进入提示内容时触发(event?: Event) => void
mouseleave-content鼠标离开提示内容时触发(event?: Event) => void
placement-change自动修正展示位置时触发(placement, oldPlacement) => void
after-enter进入动画结束后触发() => void
after-leave离开动画结束后触发() => void

Slots

插槽名说明
default触发器内容
content自定义提示层内容

使用建议

TIP

移动端优先使用 clickmanual,桌面端才更适合 hover

发布验收

lk-tooltip 已纳入 high-risk showcase 回归,发布前按下面边界验收:

场景验收方式要点
展示台基线自动回归tests/visual/high-risk-showcase.spec.ts 校验组件路由、verified 状态与高风险标记
定位与层级人工验收top/right/bottom/left 不遮挡触发器,弹层层级高于普通内容
触发方式人工验收移动端以 click/manual 为主;桌面端补 hover 进入、离开延迟

WARNING

Tooltip 的定位依赖触发器尺寸与页面边界,小程序和 App WebView 可能存在测量时序差异;复杂浮层场景建议使用 manual 控制显示状态。

基于 MIT 协议开源 · 粤ICP备2022114240号-3

Tooltip 文字提示

正在连接预览服务...

请先运行 pnpm run dev:h5