Skip to content

Tooltip 选择器

常用于展示鼠标 hover 时的提示信息。

基础用法

在这里提供 9 种不同方向的展示方式,可以通过以下完整示例来理解,选择你要的效果。

主题

Tooltip 组件内置了两个主题:darklight

TIP

要使用自定义主题,您必须知道您的工具提示在哪里渲染, 如果您的工具提示被呈现为根元素,您将需要全局设置 css 规则。

建议您使用自定义主题并同时显示箭头时不使用线性渐变背景颜色。 因为弹出箭头和内容是两个不同的元素, 弹出箭头的样式需要单独设置, 当它到渐变背景颜色时,会看起来很奇怪。

更多内容的文字提示

展示多行文本或者是设置文本内容的格式

高级扩展

除了这些基本设置外,还有一些属性可以让使用者更好的定制自己的效果:

transition 属性可以定制显隐的动画效果,默认为r-tooltip-zoom

如果需要关闭 tooltip 功能,disabled 属性可以满足这个需求, 你只需要将其设置为 true

TIP

Tooltip 内不支持 router-link 组件,请使用 vm.$router.push 代替。

Tooltip 内不支持 disabled form 元素

显示 HTML 内容

内容属性可以设置为 HTML 字符串。

WARNING

content 属性虽然支持传入 HTML 片段,但是在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。 因此在 raw-content 打开的情况下,请确保 content 的内容是可信的,永远不要将用户提交的内容赋值给 content 属性。

虚拟触发

TIP

需要注意的是,虚拟触发的 tooltip 是受控组件,因此你必须自己去控制 tooltip 是否显示,你将无法通过点击空白处来关闭 tooltip。

受控模式

API

Props

参数说明类型默认值
visible / v-model:visibleTooltip 组件可见性booleanfalse
content显示的内容,也可被 slot#content 覆盖string-
raw-contentcontent 中的内容是否作为 HTML 字符串处理booleanfalse
disabledTooltip 组件是否禁用booleanfalse
theme主题风格,可选值为 lightTooltipThemedark
trigger触发方式,可选值为 click、focus、contextmenu TooltipTriggerhover
virtual-triggering用来标识虚拟触发是否被启用boolean-
virtual-ref标识虚拟触发时的触发元素HTMLElement-
trigger-keys当鼠标点击或者聚焦在触发元素上时, 可以定义一组键盘按键并且通过它们来控制 Tooltip 的显示Array['Enter','Space']
show-arrow是否展示小箭头booleantrue
placement弹出位置TooltipPlacementbottom
offset出现位置的偏移量[number, number][0, 8]
transition动画名称string r-tooltip-zoom
enterable鼠标是否可进入到 tooltip 中(设置为 false 时只有触发方式为 hover 下才有作用)Booleantrue
show-after在触发后多久显示内容,单位毫秒number 0
hide-after延迟关闭,单位毫秒number200
auto-closetooltip 出现后自动隐藏延时,单位毫秒number0
z-index将弹窗的 z-index 层级设置为一个固定值number | string2000+
duration动画时长,单位秒,设置为 0 可以禁用动画number / string0.3
teleport指定挂载的节点,等同于 Teleport 组件的 to 属性string / Elementbody
lazy-render是否在显示弹层时才渲染节点booleantrue
before-close关闭前的回调函数,返回 false 可阻止关闭,支持返回 Promise(action: string) => boolean | Promise<boolean>-
overlay-class自定义遮罩层类名string / Array / object-
overlay-style自定义遮罩层样式object-
popper-optionspopper.js参数object请参考popper.js{}
popper-class自定义弹窗样式string / Array / object-
popper-style自定义弹窗样式object-
transition-appear是否在初始渲染时启用过渡动画booleanfalse
close-on-click-outside是否在点击外部元素后关闭菜单booleantrue
close-on-click-overlay是否在点击遮罩层后关闭菜单booleantrue
persistent当 tooltip 组件长时间不触发且 persistent 属性设置为 false 时, popconfirm 将会被删除booleanfalse
destroy-on-close当弹窗关闭时,销毁其中的元素booleanfalse

Slots

名称说明参数
defaultTooltip 触发 & 引用的元素-
content自定义内容-

Events

事件名说明回调参数
isFocusInsideContent验证当前焦点事件是否在 r-tooltip-content 中触发Function
updatePopper更新 r-popper 组件实例Function
onOpenonOpen 方法控制 r-tooltip 显示状态Function
onCloseonClose 方法控制 r-tooltip 显示状态Function
hide提供 hide 方法Function

类型定义

组件导出以下类型定义:

ts
import type {
  TooltipTheme,
  TooltipTrigger,
  TooltipThemeVars,
  TooltipPlacement
} from 'ryxon'

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值描述
--r-tooltip-arrow-size6px-
--r-tooltip-radiusvar(--r-radius-lg)-
--r-tooltip-light-text-colorvar(--r-text-color)-
--r-tooltip-light-backgroundvar(--r-background-2)-
--r-tooltip-dark-text-colorvar(--r-white)-
--r-tooltip-dark-background#4a4a4a-

Released under the MIT License.