使用vant的Swipe 轮播van-swipe 和ImagePreview 图片预览van-image-preview 和Lazyload 懒加载 实现点击轮播图,图片预览起始位置就是这张图并轮播
ImagePreview组件调用,images需要传入图片数组。现在要实现点击哪张轮播图,图片预览起始位置就是这张图,ImagePreview需要轮播。
1/main.js文件中,引入和注册vant
import Vant from "vant"; Vue.use(Vant); //图片懒加载配置项 import { Lazyload } from "vant"; Vue.use(Lazyload, { lazyComponent: true, });
2/ vue文件中
<template>
<div class="detail_contant">
<van-swipe
:autoplay="3000"
indicator-color="#f78927"
@change="onChangeImg"
:initial-swipe= this.current
>
<van-swipe-item v-for="(image, index) in images" :key="index" @click="showImagePreview(index)" >
<img v-lazy="image" alt="图片未显示"/>
</van-swipe-item>
</van-swipe>
<van-image-preview
v-model="ImagePreviewShow"
:images="images"
:start-position = this.current
@change="onChangeImagePreview"
@close = "closeImagePreview"
>
</van-image-preview>
</div>
</template>
<script>
export default {
data(){
return{
images: [
require('@/assets/banner_3@2x.png'),
require('@/assets/banner_4@2x.png'),
require('@/assets/banner_5@2x.png'),
require('@/assets/banner_1@2x.png'),
require('@/assets/banner_2@2x.png'),
],
ImagePreviewShow: false,
index: 0,
current:0,
}
},
mounted(){
},
methods: {
//得到图片索引值
onChangeImg(index) {
this.index = index;
},
//显示预览图
showImagePreview(index){
this.ImagePreviewShow = true;
this.current = index;
},
onChangeImagePreview(index){
this.index = index;
},
//关闭预览图
closeImagePreview(info){
this.current = info.index;
},
},
}
</script>
<style lang="scss" scoped>
.detail_contant{
.van-swipe{
width: 100%;
.van-swipe-item {
height: 100%;
color: #fff;
font-size: 20px;
height: 6.16rem;
text-align: center;
vertical-align: middle;
img{
width: 100%;
height: 100%;
}
}
/deep/ .van-swipe__indicators{
bottom:.27rem;
/deep/ .van-swipe__indicator{
width: .25rem;
height:.25rem;
background: #e9e3d8;
opacity: 1;
&:not(:last-child){
margin-right:.26rem;
}
&.van-swipe__indicator--active{
background: #f78927;
opacity: 1;
}
}
}
}
.van-image-preview{
/deep/ .van-image-preview__index{
display: none;
}
}
}
</style>

浙公网安备 33010602011771号