需求:移动端只轮播一张图片,PC端轮播三张图片。使用直接修改swiper属性的方式需要手动刷新页面才能达到效果,
灰常恶心。。。。于是想到切换窗口时先销毁swiper再重新实例化swiper,,问题解决。。
let news_swiper = new Swiper('.news_swiper', {
slidesPerView: 3,
spaceBetween: 30,
slidesPerGroup: 3,
loop: false,
observer: true,
observeSlideChildren: true,
loopFillGroupWithBlank: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
autoplay: true,
/* observer:true,//修改swiper自己或子元素时,自动初始化swiper
observeParents:false,//修改swiper的父元素时,自动初始化swiper
onSlideChangeEnd: function(swiper){
swiper.update();
news_swiper.startAutoplay();// 重新开始自动切换;
news_swiper.reLoop();
}*/
});
function newsSwiper_mobile() {
let $win = $(window).width();
if ($win > 768) {
news_swiper.destroy(true,true);
news_swiper = new Swiper('.news_swiper', {
slidesPerView: 3,
spaceBetween: 30,
slidesPerGroup: 3,
loop: false,
loopFillGroupWithBlank: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
autoplay: true,
});
} else {
news_swiper.destroy(true,true);
news_swiper = new Swiper('.news_swiper', {
slidesPerView: 1,
spaceBetween: 30,
slidesPerGroup: 1,
loop: false,
loopFillGroupWithBlank: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
autoplay: true,
});
}
}
注意:若不考虑页面刷新问题,则动态修改属性是:
news_swiper.params.slidesPerView = 3;