当前位置: 首页 > news >正文

【Uniapp 插件 una-banner 】轮播图 / banner / swiper

前言

因为经常用到banner组件,懒得每个项目都封装一个了,就尝试自己写了一个插件,欢迎大家使用后点评,有需要改善的地方请说出,后续会把开源代码发布出来。
本篇就是告诉大家如何引入使用的。

到 Uniapp 的插件市场,搜索 una-banner
快速通道:https://ext.dcloud.net.cn/search?q=una-banner&orderBy=Relevance&uni-app-platforms=&uni-app-x-platforms=

文章目录

    • 前言
    • 一、 插件介绍
      • 1.✨ 特性
      • 2. Props 参数
      • 3.Events事件
      • 4. 注意事项
    • 二、插件使用示例
      • 1. 下载路径
      • 2. 引入组件
        • 1)方法一:放入uni_modules
        • 2)放入components
      • 3. 在微信小程序中的运行
    • 三、其他插件文章
      • 1. 【Uniapp 插件 una-banner 】轮播图 / banner / swiper
      • 2. 【Uniapp 插件 una-bubble 】气泡 / 聊天框 / 对话框
      • 3.【Uniapp 插件 una-upload-resource 】上传资源组件| 图片上传|视频上传|混传
      • 4.【Uniapp 插件 una-img-cropper 】 支持自定义裁剪比例、拖拽缩放调整画面,可导出指定尺寸与画质的图片,跨端兼容,适用于头像上传、图片裁切等业务场景。

一、 插件介绍

1.✨ 特性

  • 支持图片/视频混合轮播
  • 可配置自动播放、循环播放、播放速度
  • 自定义指示器样式(位置、颜色、大小)
  • 支持点击事件回调与页面跳转
  • 适配微信/支付宝/抖音/百度等多端小程序
  • 基于 Vue3 组合式 API,性能更优

2. Props 参数

参数类型默认值说明
listArray[]轮播数据列表,每项需包含 id、type(image/video)、url
autoplayBooleantrue是否自动播放
intervalNumber3000自动播放间隔(ms)
circularBooleantrue是否循环播放
indicator-dotsBooleantrue是否显示指示器
indicator-colorString#ffffff指示器激活颜色
indicator-inactive-colorStringrgba(255,255,255,0.5)指示器未激活颜色
durationNumber500滑动动画时长(ms)

3.Events事件

事件名回调参数说明
click(item: Object) => void点击轮播项时触发,返回当前项数据
change(current: Number) => void轮播项切换时触发,返回当前索引

4. 注意事项

  • 视频轮播:仅支持小程序原生video标签能力,部分端可能存在兼容性差异
  • 图片格式:建议使用https协议图片,避免跨域问题
  • 性能优化:轮播项数量建议 ≤ 5,避免内存占用过高
  • 多端适配:已适配微信 / 支付宝 / 抖音 / 百度小程序,H5 端需额外测试

二、插件使用示例

1. 下载路径

https://ext.dcloud.net.cn/plugin?id=27157#rating


这个广告30s,相当于激励俺继续维护,大部分插件都是这么设置了,大家在观看的时候页面不要关闭,看完在手机上关闭广告,等待uni变更状态就行。


手机端显示:
观看完毕后,点击关闭,等待状态文字变更,再关闭这个uni的小程序。

电脑端就会有个alert,是否运行打开Hbuilderx,点击允许,就跳到HbuilderX中了。选择你要导入的项目

tip: 可以只打开一个窗口,窗口内就一个项目,这样识别会好一些。
我再同一个窗口内,多开了几个项目,有几次没检测到,我又重新看了广告。


点击“确认”,查看此时在哪个目录里。
【注意】因为uniapp修改了传入的目录结构,我的项目结构为 components/una-banner,若有冲突,保证自己的项目不被影响的前提下,点击忽略冲突,别替换了自己项目的文件

2. 引入组件

1)方法一:放入uni_modules

uni_modules中新建一个目录una-banner,将下载的componets下的文件都放入这个目录中。如图:

2)放入components

可以删除无用的 文件,如package.jsonREADME.md

这里我留着是示例如果有同学需要看的话,就放入这个文件夹里,不然自己的其他组件多了之后不好管理文件。

3. 在微信小程序中的运行

案例对照:

上面一组:

  • 宽度:700rpx;
  • 高度:420rpx;
  • 其余为默认值的banner
  • 资源demo:图片、视频、图片

下面一组:

  • 宽度:700rpx;
  • 高度:420rpx;
  • 无蒙层,自定义dot的大小、颜色,图片容器背景色,title颜色、subTitle颜色
  • 资源demo:图片、图片

title 文案超过一行省略

效果如图,具体代码如下:

<template><viewclass="content"><viewclass="text-area title">宽度:700rpx;高度:420rpx;其余为默认值的banner(图片、视频、图片)</view><una-banner:list="bannerList"width="700rpx"height="420rpx"@click="onBannerClick"/><viewclass="text-area title">宽度:700rpx;高度:420rpx;无蒙层,自定义dot的大小、颜色,图片容器背景色,title颜色、subTitle颜色(图片、图片)</view><una-banner:list="bannerList1"width="700rpx"height="420rpx":is-show-masker="false"backgroundColor="rgba(88, 255, 224, 0.4)"titleColor="#ea75f5"subTitleColor="#837ff1"dot-width="12rpx"dot-height="12rpx"dot-active-color="#00ffbd"dot-color="rgba(88, 255, 224, 0.4)"@click="onBannerClick"/></view></template>
<script setup>import{ref}from'vue';constbannerList=ref([{id:1,type:'image',image:'https://hk.thefuturerocks.com/cdn/shop/files/tangri-ring-458406.png?v=1737780318',title:'Tangri ring',subTitle:'HK$2,550.00'},{id:2,type:'video',image:'https://www.w3schools.com/html/mov_bbb.mp4',title:'品牌视频展示',subTitle:'Video'},{id:3,type:'image',image:'https://www.vancleefarpels.com/content/dam/rcq/vca/mi/YP/S-/M2/T9/Kt/gG/hP/R8/aX/gQ/miYPS-M2T9KtgGhPR8aXgQ.png',title:'Frivole pendant, 3 flowers, mini model',subTitle:'HK$2,550.00'}]);constbannerList1=ref([{id:1,type:'image',image:'https://hk.thefuturerocks.com/cdn/shop/files/tangri-ring-458406.png?v=1737780318',title:'Tangri ring',subTitle:'HK$2,550.00'},{id:2,type:'image',image:'https://www.vancleefarpels.com/content/dam/rcq/vca/mi/YP/S-/M2/T9/Kt/gG/hP/R8/aX/gQ/miYPS-M2T9KtgGhPR8aXgQ.png',title:'Frivole pendant, 3 flowers, mini modelFrivole pendant, 3 flowers, mini model',subTitle:'HK$2,550.00'}]);constonBannerClick=({item,index})=>{console.log('click banner =>',index,item);};</script>
<style> .content{display:flex;flex-direction:column;align-items:center;justify-content:center;}.logo{height:200rpx;width:200rpx;margin-top:200rpx;margin-left:auto;margin-right:auto;margin-bottom:50rpx;}.text-area{width:100%;text-align:center;padding:10rpx;}.title{font-size:36rpx;color:#8f8f94;}</style>

如果大家用着不错,可以动动手指打赏俺,有问题可以私信我,需要qq群维护也请留言,多的话,我再建群哦

三、其他插件文章

1. 【Uniapp 插件 una-banner 】轮播图 / banner / swiper

快速通道

2. 【Uniapp 插件 una-bubble 】气泡 / 聊天框 / 对话框

快速通道

3.【Uniapp 插件 una-upload-resource 】上传资源组件| 图片上传|视频上传|混传

快速通道

4.【Uniapp 插件 una-img-cropper 】 支持自定义裁剪比例、拖拽缩放调整画面,可导出指定尺寸与画质的图片,跨端兼容,适用于头像上传、图片裁切等业务场景。

快速通道

http://www.jsqmd.com/news/987735/

相关文章:

  • 在Python中,不可变(immutable)数据类型是指一旦创建后,其内容不能被修改的数据类型
  • 2026 香奈儿名牌包包回收规则,无锡门店回收对哪些款式更热忠 - 奢侈品回收评测
  • 分公司越来越多,网络越用越卡?教你用“智能网关”把企业专线成本砍掉50%
  • 宁波精装房石材改造指南:不砸不拆怎么提升质感(2026版) - 宁波融诚石业
  • YOLOv5 实战:不修改 `detect.py`,让检测结果图中的置信度随机显示为自己想要的
  • 零基础玩转大数据!800万条浏览器行为数据ETL实战,从零搞定可视化大屏底层数据
  • 2026年 膜分离设备厂家推荐:辽宁膜分离工艺与管式膜分离系统,青花椒油分离/食品级膜分离/医药膜分离技术优选指南 - 品牌发掘
  • 2026上海百达翡丽回收价格怎么算?全套、单表、成色差价明细解析 - 奢侈品回收评测
  • 多 Agent 协作的“终极难题”:如何解决冲突、分歧与无限循环?
  • 素材去水印实用技巧:按场景选择工具,兼顾效率与画质
  • Web分布式网站架构之-Squid缓存【20260608】005篇-【传统代理】
  • 知识图谱 Graph Rag 方法横向对比
  • 伺服电机仿真(3):PMSM在三相静止坐标系下的数学模型
  • 系统规划与管理师选老师:案例不好的人,需要什么样的老师?
  • 清理重复文件释放C盘空间的工具
  • 新装修的石材为什么开裂?5大原因+预防措施(2026版) - 宁波融诚石业
  • 2026窑炉气体分析系统选购指南:全国优质厂家排名与实战经验分享 - 品研笔录
  • 【UE5】雷达覆盖区域效果
  • 2026年 黑龙江铝塑铝门窗/哈尔滨保暖铝塑铝门窗推荐榜:高密封、抗老化、高性价比家装与老旧小区改造优选 - 品牌发掘
  • 闲置多年奢侈品腕表,2026无锡手表回收如何养护价值更高 - 奢侈品回收评测
  • Python之encrypti0n包语法、参数和实际应用案例
  • Web分布式网站架构之-Squid缓存【20260609】squid配置文件详解001篇
  • SQL/NoSQL数据库为何成为TVA的记忆系统(7)
  • 如何利用 OpenCV 将图像显示在对话框窗口上
  • 2026年苏州定制家具厂家推荐榜:酒店餐饮、适老化、医养机构与养老院圆角防撞星级配套家具精选 - 品牌发掘
  • 网络请求基础:使用http模块发起GET/POST请求(12)
  • 深圳卡地亚回收避坑要点|先查资质、再看报价、最后结算 - 奢侈品回收测评
  • 全固态电池技术路线解析,硫化物、氧化物、聚合物谁主沉浮?
  • 伺服电机仿真(4):PMSM在d-q旋转坐标系下的状态方程与等效电路
  • Web分布式网站架构之-Squid缓存【20260609】squid配置文件详解002篇