JGuang

走马灯

Carousel · Ant Design

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

走马灯

一组轮播的区域。

何时使用

  • 当有一组平级的内容。
  • 当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。
  • 常用于一组图片或卡片轮播。

代码演示

  • 基本 · basic
  • 位置 · placement
  • 自动切换 · autoplay
  • 渐显 · fade
  • 切换箭头 · arrows
  • 进度条 · dot-duration

API

通用属性参考:通用属性

参数说明类型默认值版本全局配置
arrows是否显示箭头booleanfalse5.17.0×
autoplay是否自动切换,如果为 object 可以指定 dotDuration 来展示指示点进度条boolean | { dotDuration?: boolean }falsedotDuration: 5.24.0×
autoplaySpeed自动切换的间隔(毫秒)number3000×
adaptiveHeight高度自适应booleanfalse×
dotPlacement面板指示点位置,可选 top bottom start endstringbottom×
dotPosition面板指示点位置,可选 top bottom left right start end,请使用 dotPlacement 替换stringbottom×
dots是否显示面板指示点,如果为 object 则可以指定 dotsClassboolean | { className?: string }true×
draggable是否启用拖拽切换booleanfalse×
fade使用渐变切换动效booleanfalse×
infinite是否无限循环切换(实现方式是复制两份 children 元素,如果子元素有副作用则可能会引发 bug)booleantrue×
speed切换动效的时间(毫秒)number500×
easing动画效果stringlinear×
effect动画效果函数scrollx | fadescrollx×
afterChange切换面板的回调(current: number) => void-×
beforeChange切换面板的回调(current: number, next: number) => void-×
waitForAnimate是否等待切换动画booleanfalse×

更多 API 可参考:https://react-slick.neostack.com/docs/api

方法

名称描述
goTo(slideNumber, dontAnimate)切换到指定面板, dontAnimate = true 时,不使用动画
next()切换到下一面板
prev()切换到上一面板

主题变量(Design Token)

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

令牌类型原生说明
dotWidthnumber | string指示点宽度
dotHeightnumber | string指示点高度
dotGapnumber指示点之间的间距
dotOffsetnumber指示点距离边缘的距离
dotWidthActivenumber见原生声明及继承类型
dotActiveWidthnumber | string激活态指示点宽度
arrowSizenumber切换箭头大小
arrowOffsetnumber切换箭头边距

声明来源: 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添加在组件最外层的 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/carousel/index.tsx
  • vendor/components/carousel/style/index.ts

来源与许可

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

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