nuxt 使用VueAwesomeSwiper插件,展示轮播及缩略图
参考地址:https://github.com/surmon-china/vue-awesome-swiper
vue-cli 脚手架使用swiper的步骤:参考地址:https://www.cnblogs.com/theblogs/p/10385604.html
api文档:https://www.swiper.com.cn/api/navigation/355.html
最终效果:

步骤:
1.npm引入:
npm install vue-awesome-swiper --save
2.nuxt.config.js配置文件中添加以下配置:
'swiper/dist/css/swiper.css'
{ src: '~plugins/vue-swiper', ssr: false },

3.plugins文件夹下,添加以下文件
import Vue from 'vue' import VueAwesomeSwiper from 'vue-awesome-swiper/dist/ssr' Vue.use(VueAwesomeSwiper)

4.使用
<template>
<div style="width:100%;height: 600px;position: relative;">
<!-- swiper1 -->
<div v-swiper:swiperTop="swiperOptionTop" class="gallery-top">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="http://114.116.25.26:8023/01/banner-%E9%A6%96%E9%A1%B5.png" />
</div>
<div class="swiper-slide">
<img src="https://surmon-china.github.io/vue-awesome-swiper/static/images/surmon-8.jpg" />
</div>
<div class="swiper-slide">
<img src="https://hyzrm.oss-cn-qingdao.aliyuncs.com/file/normal/D1EF0617F2964CADAA4C798CE5833FFD.png" />
</div>
</div>
<div class="swiper-button-next swiper-button-white" slot="button-next"></div>
<div class="swiper-button-prev swiper-button-white" slot="button-prev"></div>
</div>
<!-- swiper2 Thumbs -->
<div v-swiper:swiperThumbs="swiperOptionThumbs" class="gallery-thumbs">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="http://114.116.25.26:8023/01/banner-%E9%A6%96%E9%A1%B5.png" />
<p>阳台</p>
</div>
<div class="swiper-slide">
<img src="https://surmon-china.github.io/vue-awesome-swiper/static/images/surmon-8.jpg" />
<p>客厅</p>
</div>
<div class="swiper-slide">
<img src="https://hyzrm.oss-cn-qingdao.aliyuncs.com/file/normal/D1EF0617F2964CADAA4C798CE5833FFD.png" />
<p>卧室</p>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'carrousel',
data() {
return {
swiperOptionTop: {
grabCursor: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
},
swiperOptionThumbs: {
grabCursor: true,//鼠标覆盖Swiper时指针会变成手掌形状
centeredSlides: true,
slidesPerView: 'auto',//同时显示的数量
touchRatio: 0.2,
slideToClickedSlide: true,
},
}
},
mounted() {
this.$nextTick(() => {
const swiperTop = this.swiperTop;
const swiperThumbs = this.swiperThumbs;
swiperTop.controller.control = swiperThumbs;//控制缩略图和轮播图联动
swiperThumbs.controller.control = swiperTop
})
}
}
</script>
<style type="text/scss" lang="scss" scoped>
@import "../assets/styles/color";
.swiper-container {
height: 600px;
}
.swiper-slide {
background-size: cover;
background-position: center;
img {
width: 100%;
height: 100%;
}
}
.gallery-top {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}
.gallery-thumbs {
position: absolute;
left: 0;
bottom: 0;
height: 20% !important;
box-sizing: border-box;
padding: 10px 0;
}
.gallery-thumbs .swiper-slide {
width: 80px;
height: 80px;
margin: 0 20px 60px;
color: #fff;
border: 4px solid rgba(0,0,0,0);
p {
line-height: 30px;
text-align: center;
}
}
.gallery-thumbs .swiper-slide-active {
border: 4px solid $color-main;
color: $color-main;
p {
line-height: 30px;
text-align: center;
}
}
</style>

浙公网安备 33010602011771号