当元素获得键盘焦点或鼠标悬停在其上时,显示与该元素相关的信息的弹出窗口。
import React from 'react';import * as Tooltip from '@radix-ui/react-tooltip';import { PlusIcon } from '@radix-ui/react-icons';import './styles.css';const TooltipDemo = () => {return (<Tooltip.Provider><Tooltip.Root><Tooltip.Trigger asChild><button className="IconButton"><PlusIcon /></button></Tooltip.Trigger><Tooltip.Portal><Tooltip.Content className="TooltipContent" sideOffset={5}>Add to library<Tooltip.Arrow className="TooltipArrow" /></Tooltip.Content></Tooltip.Portal></Tooltip.Root></Tooltip.Provider>);};export default TooltipDemo;
提供程序以全局控制显示延迟。
当触发器获得焦点或悬停时打开。
当触发器被激活或按下 Esc 键时关闭。
支持自定义时间。
从命令行安装组件。
导入所有部分并将其组合在一起。
包装您的应用程序以向您的工具提示提供全局功能。
包含工具提示的所有部分。
切换工具提示的按钮。默认情况下,Tooltip.Content
将自身定位在触发器旁边。
使用时,将内容部分传送至 body
中。
工具提示打开时弹出的组件。
一个可选的箭头元素,用于与工具提示一起渲染。这可以用来帮助视觉上将触发器与 Tooltip.Content
关联。必须渲染在 Tooltip.Content
内。
使用 Provider
全局控制 delayDuration
和 skipDelayDuration
。
使用 delayDuration
属性来控制工具提示打开所需的时间。
您可能希望约束内容的宽度,使其与触发器宽度匹配。您可能还希望约束其高度,使其不超过视口。
我们公开了几个 CSS 自定义属性,例如 --radix-tooltip-trigger-width
和 --radix-tooltip-content-available-height
来支持这一点。使用它们来约束内容尺寸。
我们公开了 CSS 自定义属性 --radix-tooltip-content-transform-origin
。使用它根据 side
、sideOffset
、align
、alignOffset
和任何碰撞来从其计算出的原点为内容设置动画。
我们公开了 data-side
和 data-align
属性。它们的值将在运行时更改以反映碰撞。使用它们创建碰撞和方向感知动画。
通过将基本部分抽象到您自己的组件中来创建您自己的 API。
此示例抽象了所有 Tooltip
部分,并引入了新的 content
属性。
使用 asChild
属性 将触发器部分转换为可插槽区域。它将用传递给它的子元素替换触发器。