# una-banner
**Repository Path**: una_0903/una-banner
## Basic Information
- **Project Name**: una-banner
- **Description**: 基于 Vue3 组合式 API,Uniapp开发的插件
支持图片/视频混合轮播
可配置自动播放、循环播放、播放速度
自定义指示器样式(位置、颜色、大小)
支持点击事件回调与页面跳转
适配微信/支付宝/抖音/百度等多端小程序
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-03-10
- **Last Updated**: 2026-03-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# una-banner
基于 `uni-app` + `Vue3
```
## Props
| 名称 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| list | Array | [] | 轮播数据 |
| width | String \| Number | 100% | Banner 宽度 |
| height | String \| Number | 360rpx | Banner 高度 |
| backgroundColor | String | #E8E8E8 | Banner 背景色 |
| isShowMasker | Boolean | true | 是否显示固定渐变蒙层 |
| showDot | Boolean | true | 是否显示 dot |
| dotWidth | String \| Number | 24rpx | dot 宽度 |
| dotHeight | String \| Number | 6rpx | dot 高度 |
| dotRadius | String \| Number | 9999rpx | dot 圆角 |
| dotGap | String \| Number | 10rpx | dot 间距 |
| dotActiveColor | String | #FFFFFF | active dot 颜色 |
| dotColor | String | rgba(255, 255, 255, 0.45) | 非 active dot 颜色 |
| titleColor | String | #FFFFFF | 标题颜色 |
| subTitleKey | String | subTitle | 右下角副标题字段 |
| subTitleColor | String | #FFFFFF | 副标题颜色 |
| subTitleFontSize | String \| Number | 24rpx | 副标题字号 |
| idKey | String | id | 列表唯一键字段 |
| imageKey | String | image | 资源地址字段(图片/视频) |
| titleKey | String | title | 标题字段 |
| mediaTypeKey | String | type | 资源类型字段,值可为 image/video |
| videoObjectFit | String | contain | 视频适配方式 |
| videoControls | Boolean | false | 视频控件 |
| videoAutoplay | Boolean | false | 视频自动播放 |
| videoLoop | Boolean | true | 视频循环 |
| videoMuted | Boolean | true | 视频静音 |
| videoShowCenterPlayBtn | Boolean | true | 视频中心播放按钮 |
| current | Number | 0 | 当前索引(支持 `v-model:current`) |
| autoplay | Boolean | true | 自动播放 |
| interval | Number | 3000 | 自动切换间隔 |
| duration | Number | 500 | 动画时长 |
| circular | Boolean | true | 是否衔接滑动 |
> 说明1:若未传 `type`,组件会根据资源地址后缀自动判断是否视频(如 `.mp4/.mov/.webm/.m3u8`)。
> 说明2:蒙层样式固定为 `linear-gradient(180deg, rgba(231, 231, 231, 0) 40%, rgba(0, 0, 0, 0.4) 91%)`,通过 `isShowMasker` 控制显隐。
## Events
- `change(index)`:轮播切换
- `update:current(index)`:双向绑定回调
- `click({ item, index })`:点击当前项