layui轮播图根据图片自适应(layui.carousel)
轮播图如果固定大小,而图片大小不相同就会导致图片失帧,所以需要根据图片动态调整高度和宽度。
文档
layui文档入口


实现原理
监听图片大小,根据图片大小重置轮播图。
html
<div class="carousel">
<div class="layui-carousel" id="carousel" lay-filter="carofilter">
<div carousel-item>
<img src="0.jpg" class="img" style="width: 100%;height: auto"/>
<img src="1.jpg" class="img" style="width: 100%;height: auto"/>
</div>
</div>
</div>
js
function re(ins, i){
var height = $(".img")[i].height
ins.reload({
elem: '#carousel',
width: '100%',
height: height,
arrow: 'hover',
anim: 'default',
autoplay: false
});
}
layui.use(['carousel'], function () {
var carousel = layui.carousel;
var i = 0
var ins
var height = $(".img")[i].height
ins = carousel.render({
elem: '#carousel',
width: '100%',
height: height,
arrow: 'hover',
anim: 'default',
autoplay: false
});
re(ins, i)
carousel.on('change(carofilter)', function(obj){
i = obj.index
re(ins, i)
});
});
效果
下面两张图高度不一致,可自动调整。保证图片不被压缩,因此导致不够清晰。

