<!-- swiper1 -->
<swiper class="swiper gallery-top" :options="swiperOptionTop" ref="swiperTop">
<swiper-slide v-for="item in img_list" :key="item.id" class="slide-1">
<img :src="item.imageURL" alt="" style="width:100%">
</swiper-slide>
<div class="swiper-button-next swiper-button-white" slot="button-next"></div>
<div class="swiper-button-prev swiper-button-white" slot="button-prev"></div>
</swiper>
<!-- swiper2 Thumbs -->
<swiper class="swiper gallery-thumbs" :options="swiperOptionThumbs" ref="swiperThumbs">
<swiper-slide v-for="item in img_list" :key="item.id" class="slide-1">
<img :src="item.imageURL" alt="" style="width:100%">
</swiper-slide>
</swiper>
<script>
//使用swiper
import { Swiper, SwiperSlide } from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'
export default {
name: 'index',
components: {
Swiper,
SwiperSlide
},
data() {
return {
img_list:[
{id:1,imageURL:"https://cdn.uviewui.com/uview/album/1.jpg"},
{id:2,imageURL:"https://cdn.uviewui.com/uview/album/1.jpg"},
{id:3,imageURL:"https://cdn.uviewui.com/uview/album/1.jpg"},
{id:4,imageURL:"https://cdn.uviewui.com/uview/album/1.jpg"}
],//图片
swiperOptionTop: {
loop: true,
loopedSlides: 5, // looped slides should be the same
spaceBetween: 10,
// 左右两边的点击事件
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
},
swiperOptionThumbs: {
loop: true, // 是否可循环
loopedSlides: 5, // looped slides should be the same
spaceBetween: 10, // 缩略图之间的间隙大小
centeredSlides: true, // 大图对应的缩略图位置显示在中间
slidesPerView: 5, // 每一页显示下方缩略图的数量,auto :自动显示所有数量;输入number(如1、2、3等)则是手动定义显示的数量
touchRatio: 0.2, // 触控比例,可理解为拖动缩略图的距离,默认值为1
slideToClickedSlide: true //点击其他缩略图可跳转
}
}
},
.swiper {
margin-bottom: 10px;
.swiper-slide {
// background-size: cover;
background-position: center;
}
&.gallery-top {
height: 80%;
width: 100%;
}
&.gallery-thumbs {
height: 20%;
width: 100%;
box-sizing: border-box;
padding: gap 0;
}
&.gallery-thumbs .swiper-slide { //等比例缩小
opacity: 0.4;
height: 68px;
width: 68px;
border: 1px solid #eee;
background-size: contain;
}
&.gallery-thumbs .swiper-slide-active {
opacity: 1;
}
}