uniApp中swiper和预览图片的一起使用

uniApp中swiper和预览图片的一起使用

1.使用swiper实现轮播图效果

1.准备代码

<template>
	<swiper >
		<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" class="swiperImage" :circular="true">
			<img :src="item.url"/>
		</swiper-item>
	</swiper>
</template>

<script setup>
	import { ref } from 'vue'
	const imageUrlList = ref([
		{
			id: '1',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_1.jpg'
		},
		{
			id: '2',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_2.jpg'
		},
		{
			id: '3',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_3.jpg'
		},
		{
			id: '4',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_4.jpg'
		},
		{
			id: '5',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_5.jpg'
		}
	])
</script>


  • :indicator-dots 是否显示面板指示点
  • :autoplay 是否自动切换
  • :interval 自动切换时间间隔
  • :duration 滑动动画时长
  • :circular 是否采用衔接滑动,即播放到末尾后重新回到开头

2.以上代码可以实现轮播图的效果了

接下来实现点击图片实现预览图片的效果

2.使用uni.previewImage实现图片预览效果

1.给每个图片添加点击事件,参数为item也可以直接为item.url,我这里使用的是item

	<swiper-item v-for="item in imageUrlList" :key="item.id">
			<img :src="item.url" @click="previewImage(item)" />
		</swiper-item>

事件处理函数

function previewImage(item) {
		uni.previewImage({
			urls: imageUrlList.value.map((item) => item.url),
			current: item.url
		})
	}

uni.previewImage参数解释:

  • urls:需要预览的图片链接列表
  • current 为当前显示图片的链接/索引值,不填或填写的值无效则为 urls 的第一张 这里我使用的是链接

3.完整代码

<template>
	<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" class="swiperImage" :circular="true">
		<swiper-item v-for="item in imageUrlList" :key="item.id">
			<img :src="item.url" @click="previewImage(item)" />
		</swiper-item>
	</swiper>
</template>

<script setup>
	import { ref } from 'vue'
	const imageUrlList = ref([
		{
			id: '1',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_1.jpg'
		},
		{
			id: '2',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_2.jpg'
		},
		{
			id: '3',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_3.jpg'
		},
		{
			id: '4',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_4.jpg'
		},
		{
			id: '5',
			url: 'https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_preview_5.jpg'
		}
	])
	function previewImage(item) {
		uni.previewImage({
			urls: imageUrlList.value.map((item) => item.url),
			current: item.url
		})
	}
</script>

<style scoped lang="scss">
	.swiperImage {
		width: 750rpx;
		height: 300rpx;
		image {
			width: 100%;
			height: 100%;
		}
	}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值