返回顶部
首页 > 资讯 > 前端开发 > JavaScript >uniapp小程序开发组件封装之自定义轮播图效果
  • 117
分享到

uniapp小程序开发组件封装之自定义轮播图效果

uniapp自定义轮播图uniapp小程序开发uniapp组件封装 2023-02-06 12:02:48 117人浏览 独家记忆
摘要

目录?前言:?正文1、首先了解swiper组件1.1、小小的demo示例:1.2、自定义轮播图效果展示说明2、完成自定义轮播图效果3、组件封装——自定义轮播图

?前言:

本文主要展示小程序端封装轮播图组件,使用的是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、完成自定义轮播图效果

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

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表示当前所在滑块的 index
			changeIndicatorDots(e) {
				this.current = e.detail.current
			}
		}
	}
</script>

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

到此这篇关于uniapp小程序开发组件封装之自定义轮播图的文章就介绍到这了,更多相关uniapp自定义轮播图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: uniapp小程序开发组件封装之自定义轮播图效果

本文链接: https://lsjlt.com/news/194340.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • uniapp小程序开发组件封装之自定义轮播图效果
    目录前言:正文1、首先了解swiper组件1.1、小小的demo示例:1.2、自定义轮播图效果展示说明2、完成自定义轮播图效果3、组件封装——自定义轮播图3....
    99+
    2023-02-06
    uniapp自定义轮播图 uniapp小程序开发 uniapp组件封装
  • 小程序自定义轮播图圆点组件
    本文实例为大家分享了小程序自定义轮播图圆点组件的具体代码,供大家参考,具体内容如下 微信小程序自带的轮播图小点,是一个圆点且在图片上展示,不美观。上图为自定义后的轮播图效果 代码如...
    99+
    2024-04-02
  • 小程序如何自定义轮播图圆点组件
    本篇内容介绍了“小程序如何自定义轮播图圆点组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!微信小程序自带的轮播图小点,是一个圆点且在图片上...
    99+
    2023-07-02
  • 小程序开发实战指南之封装自定义弹窗组件
    目录1、探讨需求封装popup自定义弹窗组件2、实战开发弹窗组件2.1 子组件内容 popup.vue文件2.2 父组件引用子组件3、效果图预览3.1 不使用具名插槽的原有样式效果3...
    99+
    2022-11-13
    微信小程序自定义弹窗组件 小程序组件使用 小程序如何封装组件
  • 小程序自定义tabBar组件封装
    本文实例为大家分享了小程序自定义tabBar组件封装的具体代码,供大家参考,具体内容如下 1、新建组件:在component下新建一个tabBar 2、组件的index.wxml结...
    99+
    2024-04-02
  • 微信小程序非swiper组件如何实现自定义伪3D轮播图效果
    这篇文章将为大家详细讲解有关微信小程序非swiper组件如何实现自定义伪3D轮播图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果如下:我用了很笨的方法实现的,大致...
    99+
    2024-04-02
  • 小程序怎么自定义tabBar组件封装
    这篇文章主要介绍“小程序怎么自定义tabBar组件封装”,在日常操作中,相信很多人在小程序怎么自定义tabBar组件封装问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”小程序怎么自定义tabBar组件封装”的疑...
    99+
    2023-06-25
  • 小程序怎么自定义开发组件
    这篇文章主要讲解了“小程序怎么自定义开发组件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“小程序怎么自定义开发组件”吧!    第一种方式,下面是一个组件的基本组成部分,样式表就不写了,  ...
    99+
    2023-06-26
  • 微信小程序轮播图自定义光标位置
    本文实例为大家分享了微信小程序轮播图自定义光标位置的具体代码,供大家参考,具体内容如下 如图 轮播图的光标可以用定位来改变上下左右的位置 wxml: <!--start ba...
    99+
    2024-04-02
  • uniapp封装小程序雷达图组件的用法
    本篇内容介绍了“uniapp封装小程序雷达图组件的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果图:实现代码如下view<ca...
    99+
    2023-06-20
  • 微信小程序轮播图怎么自定义光标位置
    本篇内容介绍了“微信小程序轮播图怎么自定义光标位置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如图轮播图的光标可以用定位来改变上下左右的位...
    99+
    2023-07-02
  • uniapp封装小程序雷达图组件的完整代码
    效果图: 实现代码如下 view <canvas id="radar-canvas" class="radar-canvas" type="2d"></can...
    99+
    2024-04-02
  • 微信小程序怎么使用自定义组件封装原生image组件
    本文小编为大家详细介绍“微信小程序怎么使用自定义组件封装原生image组件 ”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么使用自定义组件封装原生image组件 ”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-06-26
  • 如何自定义小程序swiper轮播图面板指示点样式
    这篇文章给大家分享的是有关如何自定义小程序swiper轮播图面板指示点样式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序的swiper组件是滑块视图容器,也就是说平常我们看到的轮播图就可以用它来做,不过...
    99+
    2023-06-26
  • 微信小程序如何实现自定义组件封装及父子间组件传值
    小编给大家分享一下微信小程序如何实现自定义组件封装及父子间组件传值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先在我们可以直...
    99+
    2024-04-02
  • 【微信小程序开发】学习小程序的模块化开发(自定义组件和分包加载)
    前言 模块化开发是一种将复杂的应用程序分解为一系列独立的模块,每个模块负责完成特定的功能的开发方式。模块化开发可以提高代码的可维护性和可复用性,使开发过程更加高效和灵活。 文章目录 前言模块化开发的重要性和优势自定义组件自定...
    99+
    2023-12-22
    小程序 微信小程序 学习 模块开发 前端框架
  • uniapp 开发小程序,封装一个方法,让图片使用线上地址
    1.在main.js文件中,添加以下代码: 复制使用: // 图片使用网络地址Vue.prototype.localImgSrc = function(img){//项目的地址域名,例如百度return "https://baidu.cn...
    99+
    2023-08-30
    uni-app 小程序
  • uniapp开发微信小程序自定义顶部导航栏功能实例
    目录自定义导航栏渐变色,先上效果重点来了,导航栏设置渐变色补充:更换图标总结自定义导航栏渐变色,先上效果 使用uniapp开发小程序,在不同界面,要去对页面进行修改顶部导航栏。 比...
    99+
    2022-11-13
    uniapp自定义导航栏高度 uniapp自定义顶部导航栏步骤 uniapp 自定义顶部导航
  • 在webstorm开发微信小程序之如何使用自定义字体图标
    这篇文章主要介绍在webstorm开发微信小程序之如何使用自定义字体图标,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.下载阿里图标,解压出来之后有个.css文件    然后复制这...
    99+
    2024-04-02
  • vue3+vite自定义封装vue组件发布到npm包的全过程
    目录创建项目创建组件导出组件使用vite构建打包注册->登录npm发布前准备发布到npm参考:总结创建项目 “vue”: “^3.2.8&r...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作