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

  • 为什么不可以改微信号(为什么不可以改微信名)

    为什么不可以改微信号(为什么不可以改微信名)

  • 惠普打印机托架被卡住(惠普打印机托架卡住怎么办)

    惠普打印机托架被卡住(惠普打印机托架卡住怎么办)

  • 小米手机相机图标没了怎么办(小米手机相机图标不见了)

    小米手机相机图标没了怎么办(小米手机相机图标不见了)

  • 在word里面怎么打勾(在word里面怎么做架构图)

    在word里面怎么打勾(在word里面怎么做架构图)

  • 三星s10气密度多少正常(三星s10e气密度多少正常)

    三星s10气密度多少正常(三星s10e气密度多少正常)

  • 9100f支持多少频率的内存(9100f支持哪些主板)

    9100f支持多少频率的内存(9100f支持哪些主板)

  • 毒上的三种发货有啥区别(毒的三种发货方式有什么区别)

    毒上的三种发货有啥区别(毒的三种发货方式有什么区别)

  • 为什么手机没有声音,但是已经调大了(为什么手机没有显卡)

    为什么手机没有声音,但是已经调大了(为什么手机没有显卡)

  • 键盘f1到f12的功能(键盘f1到f12的功能修改)

    键盘f1到f12的功能(键盘f1到f12的功能修改)

  • 微软surface充不进去电(微软surface充不进去电,指示灯亮)

    微软surface充不进去电(微软surface充不进去电,指示灯亮)

  • 开数据看缓存花流量吗(缓存之后开流量看会扣流量吗)

    开数据看缓存花流量吗(缓存之后开流量看会扣流量吗)

  • 营销手机和普通手机的区别(营销手机有哪几个牌子)

    营销手机和普通手机的区别(营销手机有哪几个牌子)

  • 颜色反转在哪里(相机颜色反转在哪里)

    颜色反转在哪里(相机颜色反转在哪里)

  • qq人脸识别如何登录(QQ人脸识别如何使用)

    qq人脸识别如何登录(QQ人脸识别如何使用)

  • 多倍行距什么意思(多倍行距一倍是单倍行距吗)

    多倍行距什么意思(多倍行距一倍是单倍行距吗)

  • 进程实体由哪三个组成(进程实体由三部分构成,各部分的作用是什么)

    进程实体由哪三个组成(进程实体由三部分构成,各部分的作用是什么)

  • 苹果8p128g什么时候出(苹果8p128g是什么时候出的)

    苹果8p128g什么时候出(苹果8p128g是什么时候出的)

  • 抖音可以挂拼多多链接吗(抖音可以挂拼多多网店链接吗)

    抖音可以挂拼多多链接吗(抖音可以挂拼多多网店链接吗)

  • soul头像上有个绿点是什么意思(soul头像上有个生日帽)

    soul头像上有个绿点是什么意思(soul头像上有个生日帽)

  • 美团怎么看全年消费(怎么看在美团每年消费总额)

    美团怎么看全年消费(怎么看在美团每年消费总额)

  • 魅族16s耳机怎么用(魅族16s耳机怎么样)

    魅族16s耳机怎么用(魅族16s耳机怎么样)

  • mac隔空投送文件在哪(mac隔空投送文件夹到iphone在哪里找)

    mac隔空投送文件在哪(mac隔空投送文件夹到iphone在哪里找)

  • 虎牙直播弹幕怎么设置(虎牙直播弹幕怎么+1)

    虎牙直播弹幕怎么设置(虎牙直播弹幕怎么+1)

  • 【解决方案】Collecting package metadata (current_repodata.json): failed(解决方案啥意思)

    【解决方案】Collecting package metadata (current_repodata.json): failed(解决方案啥意思)

  • systemctl命令  管理系统服务(system view命令)

    systemctl命令 管理系统服务(system view命令)

  • 增值税发票选择确认平台打不开怎么办?
  • 手工现金日记账怎么转下一页
  • 赠送代金券的广告语
  • 交强险怎么报销流程
  • 乘车保险费
  • 销售费用变动率税收政策
  • 专利在审可以入库吗
  • 营业外收入在资产负债表怎么填
  • 银行承兑汇票到期日后多久可以承兑
  • 物业公司支付出的费用
  • 单位的收入是刷卡怎么做账
  • 给了钱不给发票可以报警吗
  • 怎么在网上申请变更姓名
  • 股票红利税如何征收
  • 季节性停工算作固定资产停止使用吗?
  • 建筑 分包
  • 资本增值是什么
  • 车辆购置税通过应交税费吗
  • 开通电子税务局需要什么资料
  • 出口退税函调是什么意思
  • 出口汇兑损益的会计分录
  • 建筑行业收到劳务发票入工程施工科目
  • 暂估冲回账务处理
  • 鸿蒙智能充电模式怎么用
  • 农业合作社农民合作社
  • php cookie 登录
  • php类型判断
  • PHP:stream_filter_remove()的用法_Stream函数
  • 增值税专用发票上注明的价款含税吗
  • PHP:zip_entry_filesize()的用法_Zip函数
  • 购货款先到支付后付款
  • 汽车运输企业的实际成本计算单位是
  • 抖音小程序任务哪里接
  • 大沼泽地国家公园位于哪个城市
  • 【强化学习探索01】Win10 下gym安装
  • 个人买车缴纳车船税吗
  • 广告费和业务宣传费调增还是调减
  • 人工智能机器人保姆什么时候实现
  • js读取本地excel
  • vue-bus
  • 2022最好用的港澳台电视直播
  • 研发费用如何做加计扣除
  • 零余额账户什么时候开始停用
  • 策划费多少钱
  • 单位制造费用是什么科目
  • 工程施工与工程结算对冲分录
  • 既开发票又开收据是有财务风险吗?
  • 电子发票额度余额怎么查
  • 出口运保费是什么费用
  • 家电销售的税率
  • 非盈利组织固定资产金额标准最新规定
  • 营业外收入是指企业确认与企业生产经营活动没有
  • 外币报表折算差额可以转损益吗
  • 损益类科目有哪些借贷方向
  • 企业购车购置税怎么算
  • 以前年度收入少记了怎么做分录
  • 陈列费收取标准
  • 小规模纳税人如何建账记账及流程
  • 原始凭证的基本内容
  • 怎样恢复显示桌面图标
  • macbook触摸板如何点右键
  • xp开机启动项在哪里设置方法
  • linux缺省的shell
  • Mac显示桌面快捷键
  • 神墓凌云
  • windows8如何添加打印机
  • linux安装dns软件包
  • 怎么禁止电脑qq自动启动
  • javascript的三种主要数据类型
  • 网页设置透明背景
  • css图片样式网站
  • javascript SpiderMonkey中的函数序列化如何进行
  • android broadcast
  • 建立虚拟局域网有什么好处
  • Unity3D中的事件处理
  • HttpURLConnection的流式输出的缺陷和解决方法
  • 甘肃省税务申报系统
  • 税务局落实双拥工作情况报告
  • 如何发挥人才作为第一资源 护理
  • 2020年安徽省护理技能大赛视频播放
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设