位置: IT常识 - 正文

【uniapp小程序开发】—— 组件封装之【自定义轮播图】(小程序uniacid)

编辑:rootadmin
【uniapp小程序开发】—— 组件封装之【自定义轮播图】 文章目录🍋前言:🍍正文1、首先了解`swiper`组件1.1、小小的demo示例:1.2、自定义轮播图效果展示说明2、完成自定义轮播图效果3、组件封装——自定义轮播图3.1、创建`swiper-doc.vue`组件3.2、组件调用,封装完成🎃专栏分享:🍋前言:

推荐整理分享【uniapp小程序开发】—— 组件封装之【自定义轮播图】(小程序uniacid),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp 打开小程序,uniapp小程序云开发,uniapp 小程序,uni app开发小程序,uniapp打开微信小程序,小程序uniacid,uni app开发小程序,uni app开发小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

本文主要展示小程序端封装轮播图组件,使用的是uniapp进行的开发,主要使用的是uniapp官网提供的swiper组件,可以参考官方文档,查看一些相关API。

效果图一睹为快:

话不多说直接上正文一起来学习一下封装轮播图组件吧!

🍍正文1、首先了解swiper组件

滑块视图容器。

一般用于左右滑动或上下滑动,比如banner轮播图。

注意滑动切换和滚动的区别,滑动切换是一屏一屏的切换。swiper下的每个swiper-item是一个滑动切换区域,不能停留在2个滑动区域之间。

1.1、小小的demo示例:<template><view class="uni-margin-wrap"> <swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="2000" :duration="500"> <swiper-item> <view class="swiper-item uni-bg-red">A</view></swiper-item><swiper-item> <view class="swiper-item uni-bg-green">B</view></swiper-item><swiper-item> <view class="swiper-item uni-bg-blue">C</view></swiper-item></swiper></view></template><style>.uni-margin-wrap {width: 690rpx;width: 100%;}.swiper {height: 300rpx;}.swiper-item {display: block;height: 300rpx;line-height: 300rpx;text-align: center;}</style>

效果图如下:

1.2、自定义轮播图效果展示说明

我们要做的是:

轮播图底部颜色渐变

左下方包含对应图片的一行文字说明

指示点在右下方,选中颜色为白色,未选中为灰色

效果图如下:

2、完成自定义轮播图效果【uniapp小程序开发】—— 组件封装之【自定义轮播图】(小程序uniacid)

我们先完成效果再去探讨如何封装成组件。如下示例代码展示了自定义轮播图的效果:

swiper常用属性介绍:

indicator-dots:轮播图正前方的小圆点(此案例没有使用官方提供的,是自定义的在右下角附近)autoplay:是否自动切换interval:图片轮播间隔此处为3秒duration:图片轮播动画时长 此处为0.5秒circular:是否开启无缝轮播(此处为到第三张图片后无缝播放第一张图片)<template><!-- 轮播图组件 --><view class="px-3 py-2 "><view class="position-relative"><swiper :autoplay="true" :interval="3000" :duration="500" circular style="height: 250rpx;"@change="changeIndicatorDots"><swiper-item v-for="(item,index) in swipers" :key="index"><image :src="item.src" mode="sapectFill" style="height:250rpx;width: 100%;" class="rounded-lg"></image></swiper-item></swiper><view class="flex align-center text-white rounded-bottom-lg px-2 pb-1" style="position: absolute; bottom: 0; left: 0; right: 0;background-image: linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.8));"><view style="width: 80%;" class="text-ellipsis"><!-- 获取当前指示点的位置,获取对应的title --><text>{{swipers[current].title}}</text></view><view style="width: 20%;" class="flex align-center justify-end flex-shrink"><!-- 指示点选中当前图片为白色 未选中为灰色 --><view v-for="(item,index) in swipers" :key="index" style="height: 16rpx;width: 16rpx ; "class="rounded-circle ml-1":style="index===current?'background-color:rgba(255,255,255,1)':'background-color:rgba(255,255,255,0.5)'"></view></view></view></view></view></view></template><script>export default {data() {return {current: 0, // 标识当前选中的图片序列号swipers: [{src: '/static/swiper/1.jpg',title: '自定义轮播图组件图片一'}, {src: '/static/swiper/2.jpg',title: '自定义轮播图组件图片二名字很长测试用'}, {src: '/static/swiper/3.jpg',title: '自定义轮播图组件图片三'}]}},onLoad() {},methods: { // changeIndicatorDots方法会在轮播的图片切换后调用,e.detail.current表示当前所在滑块的 index changeIndicatorDots(e) {this.current = e.detail.current}}}</script>

示例代码中的class类中的类名样式是我已经在全局配置好的,由于篇幅比较长,之后的小程序文章也会经常使用,我已经上传到了CSDN资源(免费),点击链接跳转下载可查看相对应的样式。

点击跳转下载free.css文件

3、组件封装——自定义轮播图3.1、创建swiper-doc.vue组件

3.2、组件调用,封装完成

首先我们要清楚,我们封装的内容为我们自定义的部分,swiper滑块区域是不需要封装的是通用的,我们使用插槽站位。我们只需要将我们自定义的指示点、介绍文字、渐变模块封装即可。

示例代码如下:

swiper-doc.vue文件:

<template><view class="position-relative"><!-- 轮播图组件不需要直接使用插槽 --><slot></slot><view class="flex align-center text-white rounded-bottom-lg px-2 pb-1" style="position: absolute; bottom: 0; left: 0; right: 0; background-image: linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.8));"><view style="width: 80%;" class="text-ellipsis"><!-- 获取当前指示点的位置,获取对应的title --><text>{{info[current].title}}</text></view><view style="width: 20%;" class="flex align-center justify-end flex-shrink"><!-- 指示点选中当前图片为白色 未选中为灰色 --><view v-for="(item,index) in info" :key="index" style="height: 16rpx;width: 16rpx ; "class="rounded-circle ml-1":style="index===current?'background-color:rgba(255,255,255,1)':'background-color:rgba(255,255,255,0.5)'"></view></view></view></view></template><script>export default{props:{info:Array,current:{type:Number,default:0}}}</script>

info表示我们所需的轮播图片数据;

current表示那个轮播图片的索引,用于获取title和指示点。

index.vue文件:

<view class="px-3 py-2 "><swiperDot class="position-relative" :current="current" :info="swipers"><!--swiper常用属性介绍:indicator-dots:轮播图正前方的小圆点(此案例没有使用官方提供的,是自定义的在右下角附近)autoplay:是否自动切换interval:图片轮播间隔此处为3秒duration:图片轮播动画时长 此处为0.5秒circular:是否开启无缝轮播(此处为到第三张图片后无缝播放第一张图片) --><swiper :autoplay="true" :interval="3000" :duration="500" circular style="height: 250rpx;"@change="changeIndicatorDots"><swiper-item v-for="(item,index) in swipers" :key="index"><image :src="item.src" mode="sapectFill" style="height:250rpx;width: 100%;" class="rounded-lg"></image></swiper-item></swiper></swiperDot></view><script> // 引入指示点组件,注册并使用 import swiperDot from '@/components/comon/swiper-doc.vue'export default {components: {swiperDot},data() {return {current: 0, // 标识当前选中的图片序列号swipers: [{src: '/static/swiper/1.jpg',title: '自定义轮播图组件图片一'}, {src: '/static/swiper/2.jpg',title: '自定义轮播图组件图片二名字很长测试用'}, {src: '/static/swiper/3.jpg',title: '自定义轮播图组件图片三'}]}},onLoad() {},methods: {// changeIndicatorDots方法会在轮播的图片切换后调用,e.detail.current表示当前所在滑块的 indexchangeIndicatorDots(e) {this.current = e.detail.current}}}</script>

注意:文章案例中的swipers数组在实际开发中应该是从后端获取的,我们这里是自己直接定义的。

🎃专栏分享:

小程序项目实战专栏:《uniapp小程序开发》 前端面试专栏地址:《面试必看》

⏳ 名言警句:说能做的,做说过的\textcolor{red} {名言警句:说能做的,做说过的}名言警句:说能做的,做说过的

✨ 原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!\textcolor{green}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!\textcolor{green}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!\textcolor{green}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!

本文链接地址:https://www.jiuchutong.com/zhishi/293102.html 转载请保留说明!

上一篇:详解 HttpServletResponse

下一篇:兰鲁斯特一座名为Pont Fawr的石拱桥,英国威尔士 (© Pajor Pawel/Shutterstock)(兰斯洛特)

  • 苹果13有通话录音功能吗(苹果13有通话录音机功能吗)

    苹果13有通话录音功能吗(苹果13有通话录音机功能吗)

  • 抖音怎么显示点赞数量(抖音怎么显示点赞人头像)

    抖音怎么显示点赞数量(抖音怎么显示点赞人头像)

  • 苹果13爱心模式怎么设置(苹果13爱心模式打开没反应怎么回事)

    苹果13爱心模式怎么设置(苹果13爱心模式打开没反应怎么回事)

  • 支付宝打开免密支付的步骤是什么(支付宝免密设置在哪里)

    支付宝打开免密支付的步骤是什么(支付宝免密设置在哪里)

  • 华为畅享10没有指纹解锁吗(华为畅享10没有开发人员选项)

    华为畅享10没有指纹解锁吗(华为畅享10没有开发人员选项)

  • 海康资源不足解决办法(海康nvr显示资源不足)

    海康资源不足解决办法(海康nvr显示资源不足)

  • 安卓转移到ios传输中断(安卓转移到ios传输数据一直不动)

    安卓转移到ios传输中断(安卓转移到ios传输数据一直不动)

  • 微信在wifi下无法连接(微信在无线网络不能用怎么回事)

    微信在wifi下无法连接(微信在无线网络不能用怎么回事)

  • 电脑晚上要不要关机

    电脑晚上要不要关机

  • 共享屏幕还能看到人吗(共享屏幕会被发现吗)

    共享屏幕还能看到人吗(共享屏幕会被发现吗)

  • 苹果8p微信怎么设置夜间模式(苹果8P微信怎么添加其他应用打开)

    苹果8p微信怎么设置夜间模式(苹果8P微信怎么添加其他应用打开)

  • ipad各代上市时间(ipad所有型号上市顺序)

    ipad各代上市时间(ipad所有型号上市顺序)

  • qq回执编号是什么意思(qq回执编号是啥意思)

    qq回执编号是什么意思(qq回执编号是啥意思)

  • 服务器异常是什么意思(服务器异常?)

    服务器异常是什么意思(服务器异常?)

  • 为什么快点阅读显示服务出错了(为什么快点阅读提交不了作品)

    为什么快点阅读显示服务出错了(为什么快点阅读提交不了作品)

  • 五类线支持千兆网吗(五类线千兆稳定吗)

    五类线支持千兆网吗(五类线千兆稳定吗)

  • 对小爱同学说什么会关机(对小爱同学说什么出来各种课程语音)

    对小爱同学说什么会关机(对小爱同学说什么出来各种课程语音)

  • 抖音关注旁边的小三角是什么(抖音关注旁边的箭头是什么)

    抖音关注旁边的小三角是什么(抖音关注旁边的箭头是什么)

  • 抖音撤回的消息有留底吗(抖音撤回的消息怎么恢复)

    抖音撤回的消息有留底吗(抖音撤回的消息怎么恢复)

  • oppo有没有门禁卡功能(oppo手机有门禁功能吗)

    oppo有没有门禁卡功能(oppo手机有门禁功能吗)

  • 滴滴如何修改行程目的地(滴滴如何修改行程单)

    滴滴如何修改行程目的地(滴滴如何修改行程单)

  • 小米8青春版可用18w吗(小米8青春版可以用多久)

    小米8青春版可用18w吗(小米8青春版可以用多久)

  • 淘宝影响二次销售规则(淘宝影响二次销售能退吗)

    淘宝影响二次销售规则(淘宝影响二次销售能退吗)

  • mate20指纹解锁在哪(mate20手机指纹)

    mate20指纹解锁在哪(mate20手机指纹)

  • iphone11哪天开卖(iphone 11什么时候有现货)

    iphone11哪天开卖(iphone 11什么时候有现货)

  • 小米8解锁屏幕时闪屏(小米8解锁屏幕怎么设置)

    小米8解锁屏幕时闪屏(小米8解锁屏幕怎么设置)

  • qq屏蔽对方还能看空间(QQ屏蔽对方还能加好友吗)

    qq屏蔽对方还能看空间(QQ屏蔽对方还能加好友吗)

  • ipadpro上市时间(最新ipadpro上市时间)

    ipadpro上市时间(最新ipadpro上市时间)

  • MAC软件打开提示:已损坏,打不开 您应该将它移到废纸娄的解决方法(mac软件打开提示意外退出)

    MAC软件打开提示:已损坏,打不开 您应该将它移到废纸娄的解决方法(mac软件打开提示意外退出)

  • 微信小程序实现图片上传(清晰版)(微信小程序实现支付功能)

    微信小程序实现图片上传(清晰版)(微信小程序实现支付功能)

  • 全同态加密:CKKS(全同态加密代码)

    全同态加密:CKKS(全同态加密代码)

  • 2023小规模纳税人所得税税收优惠政策
  • 新建厂房装修费是否计入固定资产
  • 税前扣除什么意思
  • 资产负债表里的应收账款怎么取数
  • 办公费专票怎么做账
  • 算所得税要不要减去增值税
  • 机动车检测公司上班时间
  • 异地施工需要办理什么手续
  • 外资企业撤退
  • 外资企业研发中心
  • 外购的商誉如何做账
  • 房产租赁合同印花税
  • 适用于6%税率的优惠
  • 委托销售怎么做分录
  • 公司成立后有哪些开支
  • 行政事业单位取暖费交个人所得税吗
  • 企业内部员工稿费
  • 银行利息收入可以开增值税专用发票
  • 企业自行出版的报刊费用可否认证抵扣?
  • 费用报销单与付款申请单的用处区别
  • 建筑业异地预缴增值税
  • 合并财务报表的特点
  • 年金的缴费基数
  • 电商刷单支付的佣金会计分录
  • 科研费收入如何入账?
  • 超过五年的未弥补亏损怎么处理?
  • 苹果6plus自带软件有哪些
  • 提供加工服务的企业
  • qtaet2s.exe - qtaet2s是什么进程 有什么用
  • 公司购买股票的流程
  • 无形资产的摊销计入什么科目
  • 出口退税率的调整方法
  • 伏尔塔瓦河上的纤夫
  • 企业收到政府奖励会计分录
  • 收到采购专用发票
  • 如何自定义smartart
  • 民办非企业单位登记管理暂行条例
  • vscode搭建vue开发环境
  • vuex详解和用法
  • discuzq是个做什么
  • 汇算清缴退税分录怎么写
  • 凭证摘要写错了已经结账
  • 缴纳工会筹备金可以计入工会经费科目吗
  • 进销存使用视频
  • mysql一次io
  • 小规模纳税人起征点变化历程
  • 应交税费的明细账怎么登记
  • 成本类账户期末如有余额在借方
  • 利税总额计算公式表
  • 从政府取得土地使用权缴增值税吗
  • 以前年度损益调整会计分录
  • 自然人独资公司税收政策
  • 对公账户有资金往来必须入账吗
  • sql server数据库跟踪
  • mysql修改版本号
  • mysql复制命令
  • ubuntu更换版本
  • centos开启telnet服务
  • win7系统屏幕键盘怎么打开
  • winxp回收站清空了怎么恢复
  • linux常用命令csdn
  • linux系统中scp命令的使用介绍
  • centos搭建v2
  • win7电脑ip地址怎么查
  • linux系统的内存分配和回收采用什么算法?
  • win8安全和维护在哪
  • win10系统百度网盘链接
  • ExtJS4利根据登录后不同的角色分配不同的树形菜单
  • jquery validator
  • 自定义控件英文
  • unity3d如何导入图片
  • android studio快捷键补全
  • python简单gui
  • jQuery插件在使用前都需要引入jQuery的js文件
  • 批量ssh登录
  • web miui
  • javascript简单吗
  • 深入理解Python特性 达恩·巴德尔
  • 杭州地税局办事大厅
  • 西北地区的沙尘暴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设