使用高级 Chakra UI 组件,更快地构建 💎

了解更多
跳到内容
文档演练场指南博客
赞助

悬停卡片

用于在鼠标悬停在元素上时显示内容

源码Storybook实现方案Ark
@chakra_ui

用法

import { HoverCard } from "@chakra-ui/react"
<HoverCard.Root>
  <HoverCard.Trigger />
  <HoverCard.Positioner>
    <HoverCard.Content>
      <HoverCard.Arrow>
        <HoverCard.ArrowTip />
      </HoverCard.Arrow>
    </HoverCard.Content>
  </HoverCard.Positioner>
</HoverCard.Root>

快捷方式

HoverCard 提供常用场景的快捷方式。

箭头

HoverCard.Arrow 默认在其内部渲染 HoverCard.ArrowTip 组件。

这样可行

<HoverCard.Arrow>
  <HoverCard.ArrowTip />
</HoverCard.Arrow>

如果您不需要自定义箭头提示,这可能更简洁。

<HoverCard.Arrow />

示例

受控

使用 openonOpenChange 属性来控制悬停卡片的可见性。

@chakra_ui

延迟

使用 openDelaycloseDelay 属性控制打开和关闭的延迟。

@chakra_ui

定位

使用 positioning.placement 属性配置底层的 floating-ui 定位逻辑。

@chakra_ui

在对话框内

要在 Dialog 中使用 HoverCard,您需要避免将 HoverCard.Positioner 门户到文档的 body 中。

-<Portal>
  <HoverCard.Positioner>
    <HoverCard.Content>
      {/* ... */}
    </HoverCard.Content>
  </HoverCard.Positioner>
-</Portal>

无障碍性

悬停卡片仅应用于显示非理解上下文所必需的补充信息。

它无法被屏幕阅读器访问,也无法通过键盘激活,因此请避免在其内部放置关键内容。

属性

属性默认值类型
closeDelay '300'
数字

鼠标离开触发器或内容后,悬停卡片关闭的持续时间。

lazyMount
布尔值

是否启用懒加载挂载

openDelay '700'
数字

鼠标进入触发器后,悬停卡片打开的持续时间。

unmountOnExit
布尔值

是否在退出时卸载。

colorPalette 'gray'
'灰色' | '红色' | '橙色' | '黄色' | '绿色' | '青色' | '蓝色' | '湖蓝色' | '紫色' | '粉色'

组件的颜色调色板

size 'md'
'xs' | 'sm' | 'md' | 'lg'

组件的尺寸

defaultOpen
布尔值

悬停卡片首次渲染时的初始打开状态。当您不需要控制其打开状态时使用。

id
字符串

机器的唯一标识符。

ids
Partial<{ trigger: string content: string positioner: string arrow: string }>

弹出框中元素的 ID。有助于组合。

immediate
布尔值

是否立即同步当前变化,或将其推迟到下一帧

onExitComplete
() => void

当动画在关闭状态结束时调用的函数

onOpenChange
(details: OpenChangeDetails) => void

当悬停卡片打开或关闭时调用的函数。

open
布尔值

悬停卡片是否打开

positioning
PositioningOptions

用户提供的用于定位弹出框内容的选项

present
布尔值

节点是否存在(由用户控制)

as
React.ElementType

要渲染的底层元素。

asChild
布尔值

使用提供的子元素作为默认渲染元素,结合它们的属性和行为。

更多详情,请阅读我们的 组合 指南。
unstyled
布尔值

是否移除组件的样式。

上一页

文件上传

下一页

图标