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

  • 下一个微信号推广风口(在下个微信)

    下一个微信号推广风口(在下个微信)

  • 微信群右上角圆圈如何删除(微信群右上角圆圈视频)

    微信群右上角圆圈如何删除(微信群右上角圆圈视频)

  • 华为有红外遥控的机型(华为有红外遥控器的手机)

    华为有红外遥控的机型(华为有红外遥控器的手机)

  • apple music怎么用不了(apple music怎么用微信支付)

    apple music怎么用不了(apple music怎么用微信支付)

  • 微信来源朋友验证消息是从哪里加的(微信来源朋友验证消息是通过什么方式添加的)

    微信来源朋友验证消息是从哪里加的(微信来源朋友验证消息是通过什么方式添加的)

  • 腾讯会议的会议内容可以看回放吗(腾讯会议的会议记录能保存多久)

    腾讯会议的会议内容可以看回放吗(腾讯会议的会议记录能保存多久)

  • 双卡手机只显示一个卡怎么回事(双卡手机只显示一个卡重启后恢复)

    双卡手机只显示一个卡怎么回事(双卡手机只显示一个卡重启后恢复)

  • 视频的封面是随机的还是怎么的(视频封面可以来源于图标吗)

    视频的封面是随机的还是怎么的(视频封面可以来源于图标吗)

  • ios13共享位置对方知道吗(iphone共享位置会出错吗)

    ios13共享位置对方知道吗(iphone共享位置会出错吗)

  • 淘宝怎么删除自己的评论(淘宝怎么删除自己评价的照片)

    淘宝怎么删除自己的评论(淘宝怎么删除自己评价的照片)

  • 小米电话录音保存在哪(小米电话录音保存多久)

    小米电话录音保存在哪(小米电话录音保存多久)

  • 手机突然不能投屏了是什么原因(手机突然不能投屏了怎么解决)

    手机突然不能投屏了是什么原因(手机突然不能投屏了怎么解决)

  • 抖音企业号有什么功能(抖音企业号有什么权益)

    抖音企业号有什么功能(抖音企业号有什么权益)

  • 拼多多如何一次拼多件(拼多多如何一次选多款)

    拼多多如何一次拼多件(拼多多如何一次选多款)

  • qq音乐桌面壁纸怎么弄(qq音乐壁纸怎么设置)

    qq音乐桌面壁纸怎么弄(qq音乐壁纸怎么设置)

  • 手机视频过大怎样传到微信(手机视频过大怎么拷到u盘)

    手机视频过大怎样传到微信(手机视频过大怎么拷到u盘)

  • zao怎么去水印(zao水印去除)

    zao怎么去水印(zao水印去除)

  • 要安装windows7系统磁盘分区必须为什么格式(要安装windows 7)

    要安装windows7系统磁盘分区必须为什么格式(要安装windows 7)

  • word文件选项在哪(word文件选项在哪里找到)

    word文件选项在哪(word文件选项在哪里找到)

  • usb怎么打开(手机连接usb怎么打开)

    usb怎么打开(手机连接usb怎么打开)

  • 金立手机老是弹出广告怎么消除(金立手机老是弹出应用程序错误)

    金立手机老是弹出广告怎么消除(金立手机老是弹出应用程序错误)

  • p30支持红外线遥控吗(p30支持红外线遥控功能吗)

    p30支持红外线遥控吗(p30支持红外线遥控功能吗)

  • vivo手机怎么在首页显示时间(vivo手机怎么在电视上投屏)

    vivo手机怎么在首页显示时间(vivo手机怎么在电视上投屏)

  • 如何通过点赞查qq号码(如何通过点赞查手机号)

    如何通过点赞查qq号码(如何通过点赞查手机号)

  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现

    基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现

  • 报税日期是哪月哪天?
  • 分公司撤销跨区域转固定资产到总公司
  • 资产负债表的固定资产怎么计算
  • 无形资产的出售的会计处理
  • 旅游业小规模纳税人的认定标准是什么
  • 签订合同后付款
  • 发票右上角打印缺数字
  • 经营性项目应收减少额怎么算
  • 临时占用耕地可以种树吗
  • 销售材料取得的进项税额
  • 油费预付卡如何开发票
  • 税控盘减免税有时间限制吗?
  • 企业变更地址需要哪些资料
  • 处理报废的固定资产
  • 计提税金与缴纳有差额
  • 物流公司货物丢失不赔偿怎么处理
  • 商业银行固定资产贷款
  • 企业申请核定征收的要求
  • 营改增后填用作废的发票可以用来报销吗?
  • 差旅费可以支取现金吗
  • 党员参加集体活动规定
  • 代收代缴消费税要交城建税吗?
  • 空调属于什么资产用途
  • windows7远程桌面连接在哪里
  • 保险费做什么会计分录
  • 模具维修费做什么费用
  • 间断性断网
  • 如何禁用开始目录的app自动推荐
  • 资本溢价和股本差多少
  • PHP:curl_pause()的用法_cURL函数
  • 如何发放年终奖 一个蒸蒸日上的公司,当
  • excel js宏
  • 莫斯塔尔古桥多高
  • php调用外部程序
  • springboot整合ssm
  • 什么叫相机标定
  • 增值税一般纳税人是什么意思
  • 目标检测选SSD还是YOLO
  • pytorch训练函数
  • 帝国cms界面
  • 收到银行的贷款怎么入账
  • 带折扣的发票如何入账
  • 清算期间还需要报税吗
  • 优先股股息必须支付吗
  • 应收账款收不回来做坏账处理分录
  • 分公司开票总公司收款怎么做账
  • 客户多付的货款计哪里
  • 综合所得申报是个人所得税申报吗
  • 多提的增值税该怎么做账
  • show processlist
  • 发票已开不确认收入可以做吗?
  • 行政事业单位资产报废账务处理
  • 固定资产登记在三栏明细账可以吗
  • 出口货物用途
  • 代缴车险
  • 收到外国人的礼物怎么感谢
  • 滞纳金是罚款支出吗
  • 投资收益的账务怎么处理
  • 城镇土地税需要计税吗
  • 汇算清缴可以调整主营业务成本吗
  • 政府奖励企业如何领取
  • 员工预支工资可以从工资里扣吗
  • 印花税属于什么科目
  • 会计凭证的主要种类
  • 零售商品购进的核算需要设置什么科目
  • 如何在mysql显示当前用户
  • 如何查看windows
  • ubuntu 20.04拨号上网
  • svcproc.exe - svcproc是什么进程 有什么作用
  • linux更改
  • 请问菜单
  • perl scripts
  • linux shell脚本命令
  • JavaScript jQuery 中定义数组与操作及jquery数组操作
  • node.js 开发工具
  • 在python中的用法
  • android support包
  • 运输费属于什么会计分录
  • 企业注销结果查询
  • 自来水公司服务热线电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设