一、使用
1、多个相同class名引用
$('.a').each(function(){
var swiper = new Swiper(this, {
autoplay : true,
loop: true,
initialSlide: 0,
observer: true,
observeParents: true
});
});
二、遇到的坑
1、在元素 display: none 时,不执行
设定参数(最低支持swiper版本 3.0.0 )
observer:true,//修改swiper自己或子元素时,自动初始化swiper
observeParents:true//修改swiper的父元素时,自动初始化swiper
2、swiper-container高度根据当前显示内容增高
autoHeight: true (最低支持swiper版本 3.2.5 )
calculateHeight : true (支持swipe2)
但是实际应用时,无效。解决方式:
设置 swiper-container , swiper-slide 高度均为auto ;但是 swiper-slide 需加 !important
.swiper-container { height: auto; }
.swiper-container .swiper-slide { height: auto !important; }
然后在调用时根据当前显示的swiper-slide的实际高度动态给swiper-container的高度赋值
var mySwiper = new Swiper('.swiper-container',{
calculateHeight: true,
onInit: function(swiper){
heightChange(swiper.activeIndex);
},
onSlideChangeEnd: function(swiper){
heightChange(swiper.activeIndex);
}
})
function heightChange(i){
var h = $('.swiper-slide').eq(i).outerHeight();
$('.swiper-container').height(h);
}