用于有视力的用户预览链接后面的内容。
import React from 'react';import * as HoverCard from '@radix-ui/react-hover-card';import './styles.css';const HoverCardDemo = () => (<HoverCard.Root><HoverCard.Trigger asChild><a className="ImageTrigger" href="https://twitter.com/radix_ui" target="_blank" rel="noreferrer noopener" ><img className="Image normal" src="https://pbs.twimg.com/profile_images/1337055608613253126/r_eiMp2H_400x400.png" alt="Radix UI" /></a></HoverCard.Trigger><HoverCard.Portal><HoverCard.Content className="HoverCardContent" sideOffset={5}><div style={{ display: 'flex', flexDirection: 'column', gap: 7 }}><img className="Image large" src="https://pbs.twimg.com/profile_images/1337055608613253126/r_eiMp2H_400x400.png" alt="Radix UI" /><div style={{ display: 'flex', flexDirection: 'column', gap: 15 }}><div><div className="Text bold">Radix</div><div className="Text faded">@radix_ui</div></div><div className="Text">Components, icons, colors, and templates for building high-quality, accessible UI.Free and open-source.</div><div style={{ display: 'flex', gap: 15 }}><div style={{ display: 'flex', gap: 5 }}><div className="Text bold">0</div> <div className="Text faded">Following</div></div><div style={{ display: 'flex', gap: 5 }}><div className="Text bold">2,900</div> <div className="Text faded">Followers</div></div></div></div></div><HoverCard.Arrow className="HoverCardArrow" /></HoverCard.Content></HoverCard.Portal></HoverCard.Root>);export default HoverCardDemo;
可以是受控的或非受控的。
自定义侧面、对齐方式、偏移量、碰撞处理。
可以选择性地渲染指向箭头。
支持自定义打开和关闭延迟。
被屏幕阅读器忽略。
从命令行安装组件。
导入所有部分并将它们拼凑在一起。
包含悬停卡片的所有部分。
当悬停时打开悬停卡片的链接。
使用时,将内容部分传送门到 body
中。
当悬停卡片打开时弹出的组件。
一个可选的箭头元素,用于与悬停卡片一起渲染。这可以用来帮助视觉上将触发器与 HoverCard.Content
链接起来。必须渲染在 HoverCard.Content
内部。
使用 openDelay
属性来控制悬停卡片打开所需的时间。
你可能希望限制内容的宽度,使其与触发器宽度一致。你可能还想限制其高度,使其不超过视窗。
我们暴露了几个 CSS 自定义属性,例如 --radix-hover-card-trigger-width
和 --radix-hover-card-content-available-height
来支持此功能。使用它们来约束内容尺寸。
我们暴露了一个 CSS 自定义属性 --radix-hover-card-content-transform-origin
。使用它根据 side
、sideOffset
、align
、alignOffset
和任何冲突,从其计算的原点动画内容。
我们暴露了 data-side
和 data-align
属性。它们的取值会在运行时发生变化,以反映冲突。使用它们来创建碰撞和方向感知动画。
悬停卡仅供视力正常用户使用,内容对键盘用户不可访问。