位置: 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)(兰斯洛特)

  • 小米11支持哪些NFC功能(小米11支持哪些快充)

    小米11支持哪些NFC功能(小米11支持哪些快充)

  • 苹果手机怎么设置浮窗功能(苹果手机怎么设置来电拦截)

    苹果手机怎么设置浮窗功能(苹果手机怎么设置来电拦截)

  • 基于位置的建议(系统服务基于位置的建议)

    基于位置的建议(系统服务基于位置的建议)

  • 手机如何充电 才能保证电池使用最长久(手机如何充电好)

    手机如何充电 才能保证电池使用最长久(手机如何充电好)

  • 充电宝10000毫安和20000毫安的区别(充电宝10000毫安多久能充满)

    充电宝10000毫安和20000毫安的区别(充电宝10000毫安多久能充满)

  • 安装程序正在安装设备卡住了(安装程序正在安装设备2%卡住)

    安装程序正在安装设备卡住了(安装程序正在安装设备2%卡住)

  • 电话卡过期了去充值还能用吗(电话卡过期了去哪里补办)

    电话卡过期了去充值还能用吗(电话卡过期了去哪里补办)

  • 华为手机性能模式开与不开什么区别(华为手机性能模式快捷键怎么设置)

    华为手机性能模式开与不开什么区别(华为手机性能模式快捷键怎么设置)

  • 电瓶车充电先插电池还是先插电源(电瓶车正确充电方法)

    电瓶车充电先插电池还是先插电源(电瓶车正确充电方法)

  • 手机去打印店怎么打印(可以用手机去打印店)

    手机去打印店怎么打印(可以用手机去打印店)

  • 下载微信显示解析包出现问题怎么办

    下载微信显示解析包出现问题怎么办

  • 喵喵机充电多久才会满(喵喵机充电注意事项)

    喵喵机充电多久才会满(喵喵机充电注意事项)

  • pc设备是什么意思(电脑pcl设备)

    pc设备是什么意思(电脑pcl设备)

  • 运算器的完整功能是(运算器的完整功能是进行算术运算和什么运算)

    运算器的完整功能是(运算器的完整功能是进行算术运算和什么运算)

  • ipad充电多久充满正常(ipad充电多久充一次)

    ipad充电多久充满正常(ipad充电多久充一次)

  • 小米充电声音怎么关(小米充电声音怎么设置)

    小米充电声音怎么关(小米充电声音怎么设置)

  • 苹果怎么关掉相机声音(苹果怎么关掉相册定位)

    苹果怎么关掉相机声音(苹果怎么关掉相册定位)

  • 出自论语的成语及解释(出自论语的成语及出处)

    出自论语的成语及解释(出自论语的成语及出处)

  • 三星手机为什么启动不了4g(三星手机为什么会发热发烫)

    三星手机为什么启动不了4g(三星手机为什么会发热发烫)

  • 三星bixby用不了(三星bixby无法使用)

    三星bixby用不了(三星bixby无法使用)

  • 苹果11是磨砂的吗(苹果11哪款是磨砂的)

    苹果11是磨砂的吗(苹果11哪款是磨砂的)

  • 微信上的看一看是什么意思(微信上的看一看怎么关闭)

    微信上的看一看是什么意思(微信上的看一看怎么关闭)

  • opporenoz怎么关机(opporeno2怎样关机)

    opporenoz怎么关机(opporeno2怎样关机)

  • qq听筒模式怎么切换

    qq听筒模式怎么切换

  • 昵图网如何按编号查找(如何用昵图网的图片在ps制作)

    昵图网如何按编号查找(如何用昵图网的图片在ps制作)

  • 电脑长时间不用很卡怎么办(电脑长时间不用黑屏后怎么打不开了)

    电脑长时间不用很卡怎么办(电脑长时间不用黑屏后怎么打不开了)

  • 年度固态硬盘大盘点,哪款ssd性能最好?哪个(固态硬盘近年价格走势)

    年度固态硬盘大盘点,哪款ssd性能最好?哪个(固态硬盘近年价格走势)

  • pytorch从零开始搭建神经网络(pytorch新手入门)

    pytorch从零开始搭建神经网络(pytorch新手入门)

  • 增值税纳税申报时间
  • 房地产耕地占用税实施细则
  • 如何理解中医的补
  • 个人劳务票必须本人开吗
  • 发票号码代码不合法
  • 小企业周转材料包括什么
  • 境外企业在境内取得的收入所得税
  • 存货项目包括哪些具体内容
  • 资产重组过程中资产转出的税收问题
  • 简易征收可以抵扣进项吗
  • 关于半年度净资产的公告
  • 进项转出后是否要交税
  • 新注册成立的公司可以往前补交社保吗
  • 转让无形资产所有权计入什么科目
  • 以前年度企业所得税申报表怎么查
  • 公司注销了质保金如何收回来
  • 劳务报酬所得的收入额
  • 工程发票需要进项吗
  • 进项税额抵扣不完怎么办
  • 企业进行破产清算时,适用于账面价值与实际价值
  • 未做账怎么补账
  • 多交附加税不退怎么做分录
  • 小规模纳税人没有达到起征点怎么申报附加
  • 企业所得税取得股息红利
  • 如何看云空间的内容
  • 计算工业总产值指数
  • 商品售价有规定吗
  • 费用怎么冲销
  • 购入一台设备的会计分录
  • php生成app
  • 处置子公司属于调整事项吗
  • macos10.15.7
  • 文竹浇白糖水的正确方法
  • 手续费及佣金扣除标准
  • uni app面试题
  • PHP:imagecolorresolve()的用法_GD库图像处理函数
  • 合并报表内部交易顺流逆流
  • php输出数字
  • 前端是指什么工作
  • 行人检测技术
  • opencv调用yolov8
  • 创立教育培训机构之前的准备工作
  • 已经提完折旧的房产价值评估
  • 加班工资应如何算
  • 公司全部股权转让流程
  • 现金流量表中的现金流量包括哪些
  • mysql怎么实现原子性
  • 弃置费用的摊余成本
  • 如何做一份有效的面包
  • 应收款和坏账的关系
  • 核算费用
  • 工程物资原材料在资产负债表哪个科目体现
  • 信用卡账单最低还款额是什么意思
  • 对外贸易出口公司
  • 公户转私户的钱怎么退回来
  • 房地产企业资产评估报告
  • MySQL数据库安装后通常默认的管理员用户名为
  • ubuntu 21.04 安装
  • win8.1 升级
  • windows设备管理器在哪里打开
  • windows 8怎么样
  • windows打开
  • win8显示wifi关怎么办
  • 批处理 >nul
  • shell date 设置日期
  • 批处理语言 从入门到精通
  • javascript中math.ceil
  • 将目录下的文件和文件夹按类型排序
  • android:excludeFromRecents="true"
  • vue3.0diff
  • python 递归函数与循环的区别
  • python单链表输出1到10
  • js基于什么
  • 晋税通注册
  • 国家税务总局千户集团企业名单
  • 陕西省地税稽查局吴爱成
  • 政府收储土地需要缴纳什么税
  • 内蒙古包头税务局客服电话
  • 贵州企业申报系统
  • 湖南国税网上营业厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设