¥Hover Card
供视力正常的用户预览链接后的内容。
import * as React from "react";import { HoverCard } from "radix-ui";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 buildinghigh-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;
Can be controlled or uncontrolled.
Customize side, alignment, offsets, collision handling.
Optionally render a pointing arrow.
Supports custom open and close delays.
Ignored by screen readers.
¥Installation
从命令行安装组件。
¥Install the component from your command line.
¥Anatomy
导入所有部分并将它们组合在一起。
¥Import all parts and piece them together.
¥API Reference
¥Root
包含悬停卡片的所有部分。
¥Contains all the parts of a hover card.
¥Trigger
悬停时打开悬停卡片的链接。
¥The link that opens the hover card when hovered.
¥Portal
使用时,将内容部分传送到 body
中。
¥When used, portals the content part into the body
.
¥Content
悬停卡片打开时弹出的组件。
¥The component that pops out when the hover card is open.
¥Arrow
一个可选的箭头元素,用于与悬停卡片一起渲染。这可以用来帮助在视觉上将触发器与 HoverCard.Content
链接起来。必须在 HoverCard.Content
中渲染。
¥An optional arrow element to render alongside the hover card. This can be used to help visually link the trigger with the HoverCard.Content
. Must be rendered inside HoverCard.Content
.
¥Examples
¥Show instantly
使用 openDelay
属性控制悬停卡片打开所需的时间。
¥Use the openDelay
prop to control the time it takes for the hover card to open.
¥Constrain the content size
你可能需要限制内容的宽度,使其与触发器的宽度匹配。你可能还需要限制其高度,使其不超过视口。
¥You may want to constrain the width of the content so that it matches the trigger width. You may also want to constrain its height to not exceed the viewport.
为了支持此功能,我们公开了几个 CSS 自定义属性,例如 --radix-hover-card-trigger-width
和 --radix-hover-card-content-available-height
。使用它们来限制内容尺寸。
¥We expose several CSS custom properties such as --radix-hover-card-trigger-width
and --radix-hover-card-content-available-height
to support this. Use them to constrain the content dimensions.
¥Origin-aware animations
我们公开了一个 CSS 自定义属性 --radix-hover-card-content-transform-origin
。使用它来根据 side
、sideOffset
、align
、alignOffset
以及任何碰撞,从其计算出的原点为内容设置动画。
¥We expose a CSS custom property --radix-hover-card-content-transform-origin
. Use it to animate the content from its computed origin based on side
, sideOffset
, align
, alignOffset
and any collisions.
¥Collision-aware animations
我们公开了 data-side
和 data-align
属性。它们的值将在运行时更改以反映碰撞。使用它们来创建碰撞和方向感知动画。
¥We expose data-side
and data-align
attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations.
¥Accessibility
悬停卡片仅供视力正常的用户使用,键盘用户将无法访问内容。
¥The hover card is intended for sighted users only, the content will be inaccessible to keyboard users.
¥Keyboard Interactions