问题描述:
我使用的@4.5.1的版本 swiper样式在动态获取数据的时候,swiper数据替换后,呈现效果不对。使用了以下属性都无效
//初始化swiper
bannerPoint() {
var that=this
that.bannerswiper = new Swiper('.swiper-container', {
mousewheel: true, //滚轮
autoplay: { //自动开始
delay: 5000, //时间间隔
disableOnInteraction: false, //*手动操作轮播图后不会暂停*
},
init: true,
initialSlide: 0,
updateTranslate: true,//当所有的内嵌图像(img标签)加载完成后Swiper会重新初始化。
loop: true, // 循环模式选项
observer: true, //修改swiper自己或子元素时,自动初始化swiper
observeParents: true,//修改swiper父元素时,自动初始化swiper
observeSlideChildren: true,
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
clickable: true, // 分页器可以点击
},
})
//刷新
that.$nextTick(() => {
that.bannerswiper.update();
})
},
解决办法: swiper.destroy(true, true),虽然是4.5.1的版本但是还是用到swiper3API文档里面的方法,4-7版本里面方法没找到destroy,坑。
getSwiperData(){
this.bannerswiper.destroy(true, true)//销毁所有绑定的监听事件 销毁对象、销毁样式
this.bannerswiper.update()
//自动滚动后,.swiper-container盒子内样式有细节差别 可以手动写样式解决,如下
//let swiperBox = document.getElementById(id)
//swiperBox.style.xxx = '...'
}
参考:mySwiper.destroy(deleteInstance, cleanupStyles)_swiper3参数选项