更新记录
1.0.0(2026-10-28)
- 首次发布
- 支持 12 种轮播风格:
classic、fade、card、gallery、coverflow、carousel3d、split、thumbnail、fullscreen、story、grid、infinite
- 支持自动播放、循环、指示点、圆角、图片裁剪模式等配置
- 支持
change、click 事件与手势滑动
平台兼容性
uni-app(4.33)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
√ |
√ |
- |
4.4 |
12 |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
lunbotu 多风格轮播图
一个 mode 参数即可在 12 种轮播风格之间切换的 uni-app 轮播图组件,纯 vue 实现,无需额外依赖。
特性
- 12 种风格一键切换,数据源与用法完全一致
- 支持自动播放、循环、指示点、圆角、图片裁剪模式等常用配置
- 支持点击、切换事件,支持手动左右滑动(含 3D 风格)
- 基于
uni_modules 规范,Vue2 / Vue3 均可使用(app-vue、H5、各家小程序)
安装
将 uni_modules/lunbotu 整个目录拷贝到你的 uni-app 项目根目录下的 uni_modules 中,即可通过 easycom 自动引入(无需 import 与注册):
<lunbotu :list="list" mode="classic"></lunbotu>
也可以显式引入:
import lunbotu from '@/uni_modules/lunbotu/components/lunbotu/lunbotu.vue'
export default {
components: { lunbotu }
}
快速使用
<template>
<view class="page">
<lunbotu
:list="list"
mode="coverflow"
:height="420"
:interval="3000"
:autoplay="true"
:loop="true"
@change="onChange"
@click="onClick"
></lunbotu>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{ image: 'https://example.com/1.jpg', title: '第一张', desc: '描述文字' },
{ image: 'https://example.com/2.jpg', title: '第二张', desc: '描述文字' }
]
}
},
methods: {
onChange(e) {
console.log('当前索引', e.index)
},
onClick(e) {
console.log('点击了第', e.index, '张', e.item)
}
}
}
</script>
风格一览
| mode 值 |
风格 |
说明 |
classic |
经典滑动式 |
左右滑动切换,最常见 |
fade |
淡入淡出式 |
图片叠化,适合氛围型大图 |
card |
卡片式轮播 |
一屏多卡,可左右滑动 |
gallery |
居中放大 / 画廊式 |
中间主图放大,两侧露出部分 |
coverflow |
3D 层叠 / Coverflow |
透视、层叠、旋转效果 |
carousel3d |
旋转木马式 |
环形排列,适合产品多角度展示 |
split |
分屏 / 左右分栏式 |
左文右图,分屏切换 |
thumbnail |
缩略图导航式 |
底部缩略图切换,适合作品集、电商图集 |
fullscreen |
全屏沉浸式 |
整屏切换 + 进度指示 |
story |
故事 / 时间轴式 |
类似 Instagram Stories,顶部进度条 |
grid |
网格拼贴 / 马赛克式 |
多图组合分页轮播 |
infinite |
无限循环 / 自动播放式 |
适合 logo 墙、客户案例、数据看板 |
属性
| 属性名 |
类型 |
默认值 |
说明 |
list |
Array |
内置 5 张示例图 |
数据源,元素结构见下文;不传时展示内置示例数据,避免空白 |
mode |
String |
classic |
风格,取值见上表 |
height |
Number / String |
360 |
高度,数字按 rpx;也可传 '100vh'、'420px' |
autoplay |
Boolean |
true |
是否自动播放(infinite 控制滚动动画) |
interval |
Number |
3200 |
自动播放间隔(ms),同时作为故事进度条时长 |
duration |
Number |
500 |
切换动画时长(ms) |
loop |
Boolean |
true |
是否循环播放 |
indicator |
Boolean |
true |
是否显示指示点 |
indicatorColor |
String |
rgba(255,255,255,0.42) |
指示点颜色 |
indicatorActiveColor |
String |
#ffffff |
指示点选中颜色 |
radius |
Number / String |
16 |
圆角,数字按 rpx |
imageMode |
String |
aspectFill |
图片裁剪模式,同 <image mode> |
showTitle |
Boolean |
true |
是否显示标题 / 描述 |
marqueeSpeed |
Number |
3 |
infinite 每张图滚动所占秒数 |
事件
| 事件名 |
说明 |
回调参数 |
change |
切换时触发 |
{ index, page, item, mode } |
click |
点击图片时触发 |
{ index, item, mode } |
index 为数据条目索引;page 为当前轮播单元(grid 风格下为页索引,其余与 index 相同)。
数据项结构
{
image: '', // 图片地址,兼容 url / src 字段
title: '', // 标题,可选
desc: '', // 描述,可选
tag: '' // 业务自定义字段,可自由扩展
}
说明
thumbnail 风格高度由主图决定,缩略图自动追加在主图下方,组件根部高度自适应。
fullscreen 风格建议传 height="100vh"。
grid 风格每页 3 张:左(或右)一大图 + 右侧两小图,按页切换。
infinite 风格会把列表复制一份实现无缝滚动,autoplay 为 false 时动画暂停。
- 3D 风格(
coverflow、carousel3d)与 fade、split、thumbnail、story、grid 支持手势左右滑动。