需求描述:我们经常在开发中,页面中会出现轮播图,有的时候需要把轮播图和数据做一个联动,但是如何获取到轮播的页面,这里面有一些坑
1.首先我们要先安装swiper插件
npm install vue-awesome-swiper --save-dev
2.使用前,在main.js加入全局引用
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'
Vue.use(VueAwesomeSwiper )
3.在页面中使用
<swiper :options="swiperOption" ref="mySwiper3">
<swiper-slide>
<div class="biaoCharts" ref="biaoCharts"></div>
</swiper-slide>
<swiper-slide>
<div class=" biaoCharts" ref="biaoCharts2"></div>
</swiper-slide>
<!-- <div class="swiper-pagination" slot="pagination"></div>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div> -->
</swiper>
4.在data中
swiperOption: {
loop: false,
autoplay:false,
observer: true, //修改swiper自己或子元素时,自动初始化swiper
observeParents: true, //修改swiper的父元素时,自动初始化swiper
on: {
slideChange: function () {
console.log(this.realIndex); // -> 这里的this指的是Swiper的this对象,不是vue的,所以要将VUe的this对象声明vm指向vue实例,这里就是轮播图的切换下标
vm.SwiperIndex=this.realIndex
console.log(vm.SwiperIndex);
}
},
autoplay: {
delay: 3000,
stopOnLastSlide: false,
disableOnInteraction: false,
},
// 显示分页
pagination: {
el: ".swiper-pagination",
clickable: true, //允许分页点击跳转
},
// 设置点击箭头
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
},
5. 全局声明vm变量
<script>
var vm = null
</script>
6.在create中声明将vue实例对象指向vm
created() {
//完成swiperOption点击事件的vm指向vue实例
vm = this;
},
7.最后在根据自己的需求修改下样式就可以了