走马灯
一组轮播的区域。
何时使用
- 当有一组平级的内容。
- 当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。
- 常用于一组图片或卡片轮播。
代码演示
- 基本 ·
basic - 位置 ·
placement - 自动切换 ·
autoplay - 渐显 ·
fade - 切换箭头 ·
arrows - 进度条 ·
dot-duration
API
通用属性参考:通用属性
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| arrows | 是否显示箭头 | boolean | false | 5.17.0 | × |
| autoplay | 是否自动切换,如果为 object 可以指定 dotDuration 来展示指示点进度条 | boolean | { dotDuration?: boolean } | false | dotDuration: 5.24.0 | × |
| autoplaySpeed | 自动切换的间隔(毫秒) | number | 3000 | × | |
| adaptiveHeight | 高度自适应 | boolean | false | × | |
| dotPlacement | 面板指示点位置,可选 top bottom start end | string | bottom | × | |
面板指示点位置,可选 top bottom left right start end,请使用 dotPlacement 替换 | string | bottom | × | ||
| dots | 是否显示面板指示点,如果为 object 则可以指定 dotsClass | boolean | { className?: string } | true | × | |
| draggable | 是否启用拖拽切换 | boolean | false | × | |
| fade | 使用渐变切换动效 | boolean | false | × | |
| infinite | 是否无限循环切换(实现方式是复制两份 children 元素,如果子元素有副作用则可能会引发 bug) | boolean | true | × | |
| speed | 切换动效的时间(毫秒) | number | 500 | × | |
| easing | 动画效果 | string | linear | × | |
| effect | 动画效果函数 | scrollx | fade | scrollx | × | |
| afterChange | 切换面板的回调 | (current: number) => void | - | × | |
| beforeChange | 切换面板的回调 | (current: number, next: number) => void | - | × | |
| waitForAnimate | 是否等待切换动画 | boolean | false | × |
更多 API 可参考:https://react-slick.neostack.com/docs/api
方法
| 名称 | 描述 |
|---|---|
| goTo(slideNumber, dontAnimate) | 切换到指定面板, dontAnimate = true 时,不使用动画 |
| next() | 切换到下一面板 |
| prev() | 切换到上一面板 |
主题变量(Design Token)
类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。
| 令牌 | 类型 | 原生说明 |
|---|---|---|
dotWidth | number | string | 指示点宽度 |
dotHeight | number | string | 指示点高度 |
dotGap | number | 指示点之间的间距 |
dotOffset | number | 指示点距离边缘的距离 |
dotWidthActive | number | 见原生声明及继承类型 |
dotActiveWidth | number | string | 激活态指示点宽度 |
arrowSize | number | 切换箭头大小 |
arrowOffset | number | 切换箭头边距 |
声明来源: vendor/components/carousel/style/index.ts
import type { CSSObject } from '@ant-design/cssinjs';
import { Keyframes, unit } from '@ant-design/cssinjs';
import { resetComponent } from '../../style';
import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';
import { genStyleHooks } from '../../theme/internal';
export interface ComponentToken {
/**
* @desc 指示点宽度
* @descEN Width of indicator
*/
dotWidth: number | string;
/**
* @desc 指示点高度
* @descEN Height of indicator
*/
dotHeight: number | string;
/**
* @desc 指示点之间的间距
* @descEN gap between indicator
*/
dotGap: number;
/**
* @desc 指示点距离边缘的距离
* @descEN dot offset to Carousel edge
*/
dotOffset: number;
/** @deprecated Use `dotActiveWidth` instead. */
dotWidthActive: number;
/**
* @desc 激活态指示点宽度
* @descEN Width of active indicator
*/
dotActiveWidth: number | string;
/**
* @desc 切换箭头大小
* @descEN Size of arrows
*/
arrowSize: number;
/**
* @desc 切换箭头边距
* @descEN arrows offset to Carousel edge
*/
arrowOffset: number;
}
interface CarouselToken extends FullToken<'Carousel'> {}
FAQ
如何自定义箭头?
可参考 #12479。
原生通用属性
Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| style | 自定义样式 | CSSProperties | - |
| className | 自定义类名 | string | - |
| rootClassName | 添加在组件最外层的 className | string | - |
| autoFocus | 自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效 | boolean | false |
安装并复现示例
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23
使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。
原生类型参考
源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。
vendor/components/carousel/index.tsxvendor/components/carousel/style/index.ts
来源与许可
https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd
保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。