layui轮播图根据图片自适应(layui.carousel)

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"/> // width调整图片宽度在轮播图组件中的占比
                <img src="1.jpg" class="img" style="width: 100%;height: auto"/>
            </div>
        </div>
    </div>

js

function re(ins, i){
        // var width = $(".img")[i].width
        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 width = $(".img")[i].width //获取图片宽度
            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)
            });
        });

效果

下面两张图高度不一致,可自动调整。保证图片不被压缩,因此导致不够清晰。

在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值