Carousel 轮播组件
Carousel 是一个内容轮播展示组件,支持自动轮播、手动切换、触摸滑动等交互方式。它可以用于展示一组图片、卡片或其他任何内容,并提供多种自定义选项。
引入
typescript
import { Carousel } from '@versakit/vue'
基本用法
loading
API
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
variant | 'default' | 'dots' | 'thumbnails' | 'default' | 轮播图变体类型 |
size | 'sm' | 'md' | 'lg' | 'md' | 轮播图尺寸 |
autoplay | boolean | false | 是否自动播放 |
interval | number | 3000 | 自动播放间隔时间(毫秒) |
loop | boolean | true | 是否循环播放 |
indicators | boolean | true | 是否显示指示器 |
navigation | boolean | true | 是否显示导航按钮 |
keyboardNavigation | boolean | true | 是否启用键盘导航 |
touchSwipe | boolean | true | 是否启用触摸滑动 |
disabled | boolean | false | 是否禁用轮播图 |
initialIndex | number | 0 | 初始激活的幻灯片索引 |
unstyled | boolean | false | 是否使用无样式模式 |
pt | CarouselPT | - | 自定义样式传递 |
事件
事件名 | 参数 | 说明 |
---|---|---|
change | (currentIndex: number, prevIndex: number) => void | 当前激活的幻灯片改变时触发 |
update:active-index | (index: number) => void | 当前激活的幻灯片索引更新时触发 |
插槽
插槽名 | 参数 | 说明 |
---|---|---|
item- | - | 幻灯片内容,n 为幻灯片索引,从 0 开始 |
prev-icon | - | 自定义上一张按钮图标 |
next-icon | - | 自定义下一张按钮图标 |
方法
方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|
next | - | void | 切换到下一张幻灯片 |
prev | - | void | 切换到上一张幻灯片 |
goToSlide | (index: number) => void | void | 切换到指定索引的幻灯片 |
样式传递
通过 pt
属性可以自定义组件各部分的样式:
typescript
type CarouselPT = {
root?: string
container?: string
item?: string
navigation?: string
prevButton?: string
nextButton?: string
indicators?: string
indicator?: string
activeIndicator?: string
}
无障碍访问
Carousel 组件遵循 WCAG 2.1 标准,支持以下无障碍特性:
- 键盘导航:通过左右箭头键切换幻灯片
- 适当的 ARIA 属性:导航按钮和指示器都包含适当的 aria-label 和 aria-current 属性
- 可聚焦元素:导航按钮和指示器都可以通过键盘聚焦