uni.previewImage是uniapp提供的预览图片的方法
第一种点击盒子图片预览放大效果
1.准备结构
<view v-for="(item,index) in photos" :key="index">
//点击当前图片传入索引
<image :src="item.pics_small_url" @click="getImgIndex(index)"></image>
</view>
2.实现功能
<script>
export default {
data() {
return {
photos: [] // 存放从后台获取的数据 图片路径
};
},
methods: {
getImgIndex(index){
console.log(index);
//准备一个装图片路径的 数组imgs
let imgs = this.photos.map( item =>{
//只返回图片路径
return item.pics_big_url
})
// console.log(imgs);
//调用预览图片的方法
uni.previewImage({
urls:imgs,
current:index //点击图片传过来的下标
})
}
}
}
</script>
3.实现效果
第二种轮播图点击图片预览放大效果
渲染轮播图区域
1.使用 v-for 指令,循环渲染如下的轮播图 UI 结构:
<!-- 轮播图区域 -->
<!-- 小圆点 / 自动轮播 / 轮播间隔时间 / 当前页轮播开始到结束耗时 / 无缝衔接轮播 -->
<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
<swiper-item v-for="(item, i) in goods_info.pics" :key="i">
<image :src="item.pics_big"></image>
</swiper-item>
</swiper>
2.美化轮播图的样式
// 轮播图样式处理
swiper {
height: 330rpx;
//每一张轮播
.swiper-item,
image {
width: 100%;
height: 100%;
}
}
3.实现轮播图预览效果
- 为轮播图中的 image 图片绑定 click 事件处理函数:
-
<swiper-item v-for="(item, i) in goods_info.pics" :key="i">
<!-- 把当前点击的图片的索引,传递到 preview() 处理函数中 -->
<image :src="item.pics_big" @click="preview(i)"></image>
</swiper-item>
- 在 methods 中定义 preview 事件处理函数:
-
// 实现轮播图的预览效果
preview(i) {
// 调用 uni.previewImage() 方法预览图片
uni.previewImage({
// 预览时,默认显示图片的索引
current: i,
// 所有图片 url 路径的数组 //这里直接把图片列表的数组放入即可
urls: this.goods_info.pics.map(item => item.pics_big)
})
}
-
4.实现效果:
-
-