Vue中elementUI轮播图图片高度自适应

问题

轮播图是我们经常使用到的一个组件,element官方文档中也叫“跑马灯” el-carousel。官方示例中并没有使用图片来演示,而是用来一个150px的颜色块。将h3换成img标签即可实现轮播图片,但是如果固定高度,那么如果缩小浏览器窗口,或者使用移动设备来打开,那么固定高度就会显得非常别扭。所以必须检测浏览器宽度,来动态改变轮播图组件的宽度,即响应式。
在这里插入图片描述

解决

在csdn查了一下,找到了解决办法。
在这里插入图片描述
el-carousel组件高度绑定data中的数据:

<el-carousel :height="bannerHeight+'px'" type="card">
        <el-carousel-item v-for="item in urlList" :key="item.id">
          <img :src="item.url" alt="暂无图片">
        </el-carousel-item>
</el-carousel>

然后在mouted钩子函数中,检测浏览器宽度,如果改变,则相应的改变轮播图组件宽度,达到自适应的目的。

  mounted () {
    // 首次加载时,初始化高度
    this.screenWidth = window.innerWidth
    this.bannerHeight = 600 / 1550 * this.screenWidth
    // 窗口大小发生改变
    window.onresize = () => {
      this.screenWidth = window.innerWidth
      this.bannerHeight = 600 / 1550 * this.screenWidth
    }
  }

轮播图片css设置:这里图片高度没有设置auto而是应该和父组件el-carousel高度一直,所以是inherit。
在这里插入图片描述
效果:
PC端默认宽度
在这里插入图片描述
移动端
在这里插入图片描述

原理

轮播图组件高度绑定为data中的数据。
mounted函数中检测浏览器宽度,动态改变data中的bannerHeight,从而实现改变轮播图组件的宽度。

  • 12
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小绵杨Yancy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值