JGuang

漫游式引导

Tour · Ant Design

交互预览
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

漫游式引导

用于分步引导用户了解产品功能的气泡组件。

何时使用

常用于引导用户了解产品功能。

代码演示

  • 基本 · basic
  • 非模态 · non-modal
  • 位置 · placement
  • 自定义遮罩样式 · mask
  • 自定义指示器 · indicator
  • 自定义操作按钮 · actions-render
  • 自定义高亮区域的样式 · gap
  • 自定义语义结构的样式和类 · style-class

API

通用属性参考:通用属性

Tour

属性说明类型默认值版本全局配置
arrow是否显示箭头,包含是否指向元素中心的配置boolean | { pointAtCenter: boolean}true×
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.0.0
closeIcon自定义关闭按钮React.ReactNodetrue5.9.05.14.0
disabledInteraction禁用高亮区域交互booleanfalse5.13.0×
gap控制高亮区域的圆角边框和显示间距{ offset?: number | [number, number]; radius?: number }{ offset?: 6 ; radius?: 2 }5.0.0 (数组类型的 offset: 5.9.0 )×
keyboard是否启用键盘快捷行为booleantrue6.2.0×
placement引导卡片相对于目标元素的位置center left leftTop leftBottom right rightTop rightBottom top topLeft topRight bottom bottomLeft bottomRightbottom×
onClose关闭引导时的回调函数Function-×
onFinish引导完成时的回调Function-×
mask是否启用蒙层,也可传入配置改变蒙层样式和填充色boolean | { style?: React.CSSProperties; color?: string; }true×
type类型,影响底色与文字颜色default | primarydefault×
open打开引导boolean-×
onChange步骤改变时的回调,current 为当前的步骤(current: number) => void-×
current当前处于哪一步number-×
scrollIntoViewOptions是否支持当前元素滚动到视窗内,也可传入配置指定滚动视窗的相关参数boolean | ScrollIntoViewOptionstrue5.2.0×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.0.0
indicatorsRender自定义指示器(current: number, total: number) => ReactNode-5.2.0×
actionsRender自定义操作按钮(originNode: ReactNode, info: { current: number, total: number }) => ReactNode-5.25.0×
zIndexTour 的层级number10015.3.0×
getPopupContainer设置 Tour 浮层的渲染节点,默认是 body(node: HTMLElement) => HTMLElementbody5.12.0×

TourStep 引导步骤卡片

属性说明类型默认值版本
target获取引导卡片指向的元素,为空时居中于屏幕() => HTMLElement | HTMLElement-
arrow是否显示箭头,包含是否指向元素中心的配置boolean | { pointAtCenter: boolean}true
closeIcon自定义关闭按钮React.ReactNodetrue5.9.0
cover展示的图片或者视频ReactNode-
title标题ReactNode-
description主要描述部分ReactNode-
placement引导卡片相对于目标元素的位置center left leftTop leftBottom right rightTop rightBottom top topLeft topRight bottom bottomLeft bottomRightbottom
onClose关闭引导时的回调函数Function-
mask是否启用蒙层,也可传入配置改变蒙层样式和填充色,默认跟随 Tour 的 mask 属性boolean | { style?: React.CSSProperties; color?: string; }true
type类型,影响底色与文字颜色default | primarydefault
nextButtonProps下一步按钮的属性{ children: ReactNode; onClick: Function }-
prevButtonProps上一步按钮的属性{ children: ReactNode; onClick: Function }-
scrollIntoViewOptions是否支持当前元素滚动到视窗内,也可传入配置指定滚动视窗的相关参数,默认跟随 Tour 的 scrollIntoViewOptions 属性boolean | ScrollIntoViewOptionstrue5.2.0

Semantic DOM

语义节点原生说明版本
root引导根容器,设置绝对定位、层级控制、最大宽度、可见性、箭头背景色变量、主题样式等容器样式6.0.0
mask遮罩层元素,设置固定定位、全屏覆盖、层级、指针事件、过渡动画等遮罩样式6.0.0
section卡片主要内容区域,设置文本对齐、边框圆角、盒阴影、相对定位、背景色、边框、背景裁剪等卡片样式6.0.0
cover卡片封面区域,设置文本居中对齐、内边距、图片宽度等图片展示样式6.0.0
close关闭按钮元素,设置绝对定位、尺寸、颜色、悬浮态和交互反馈等关闭按钮样式6.4.0
header卡片头部区域,设置内边距、宽度计算、词汇换行等头部容器样式6.0.0
title引导标题文字,设置字体粗细等标题文本样式6.0.0
description引导描述文字,设置内边距、词汇换行等描述文本样式6.0.0
footer卡片底部操作区域,设置内边距、文本右对齐、边框圆角、Flex布局等底部容器样式6.0.0
actions操作按钮组容器,设置左侧自动外边距、按钮间距等按钮组布局样式6.0.0
indicators指示器组容器,设置行内块显示等指示器容器样式6.0.0
indicator单个指示器元素,设置宽高尺寸、行内块显示、圆角、背景色、右外边距、激活状态等圆点样式6.0.0

语义说明来源: vendor/components/tour/demo/_semantic.tsx

主题变量(Design Token)

类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。

令牌类型原生说明
zIndexPopupnumber弹层 z-index
closeBtnSizenumber关闭按钮尺寸
primaryPrevBtnBgstringPrimary 模式上一步按钮背景色
primaryNextBtnHoverBgstringPrimary 模式下一步按钮悬浮背景色

声明来源: vendor/components/tour/style/index.ts

import { unit } from '@ant-design/cssinjs';

import { FastColor } from '@ant-design/fast-color';

import { genFocusStyle, resetComponent } from '../../style';

import type { ArrowOffsetToken } from '../../style/placementArrow';

import getArrowStyle, {
  getArrowOffsetToken,
  MAX_VERTICAL_CONTENT_RADIUS,
} from '../../style/placementArrow';

import type { ArrowToken } from '../../style/roundedArrow';

import { getArrowToken } from '../../style/roundedArrow';

import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';

import { genStyleHooks, mergeToken } from '../../theme/internal';

import { genCssVar } from '../../theme/util/genStyleUtils';

export interface ComponentToken extends ArrowOffsetToken, ArrowToken {
  /**
   * @desc 弹层 z-index
   * @descEN Tour popup z-index
   */
  zIndexPopup: number;
  /**
   * @desc 关闭按钮尺寸
   * @descEN Close button size
   */
  closeBtnSize: number;
  /**
   * @desc Primary 模式上一步按钮背景色
   * @descEN Background color of previous button in primary type
   */
  primaryPrevBtnBg: string;
  /**
   * @desc Primary 模式下一步按钮悬浮背景色
   * @descEN Hover background color of next button in primary type
   */
  primaryNextBtnHoverBg: string;
}

interface TourToken extends FullToken<'Tour'> {
  indicatorWidth: number | string;
  indicatorHeight: number | string;
  tourBorderRadius: number;
}

原生通用属性

Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。

参数说明类型默认值
style自定义样式CSSProperties-
className自定义类名string-
rootClassName添加在组件最外层的 classNamestring-
autoFocus自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效booleanfalse

安装并复现示例

npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。

原生类型参考

源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。

  • vendor/components/tour/PurePanel.tsx
  • vendor/components/tour/interface.ts
  • vendor/components/tour/panelRender.tsx
  • vendor/components/tour/style/index.ts

来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。