ElementUi走马灯的自适应图片的高度

ref 有三种用法:
1、ref 加在普通的元素上,用this.ref.name 获取到的是dom元素
2、ref 加在子组件上,用this.ref.name 获取到的是组件实例,可以使用组件的所有方法。
3、如何利用 v-for 和 ref 获取一组数组或者dom 节点

<!-- 走马灯 开始 -->
    <div class="carousel">
       <!-- 下面的 :height="bannerHeight + 'px'" 是绑定数据 -->
      <el-carousel :interval="5000" arrow="always" :height="bannerHeight + 'px'">
        <el-carousel-item v-for="item in imgUrl" :key="item.id">
          <img
            :src="item.idView"
            alt="我是轮播图"
            <!-- 下面的 ref 这是个关键字 不清楚看官网文档  -->
            ref="bannerHeight"
            class="bannerImg"
            <!-- 下面的 @load 是加载事件 -->
            @load="imgLoad"
          />
        </el-carousel-item>
      </el-carousel>
    </div>
<!-- 走马灯 结束 -->

窗口第一次打开,加载了imgLoad()方法,第一次获取图片在视口中的高度,然后渲染到页面
接下来通过addEventListenner()方法监听视口是否发生改变,如果发生改变,重新调用imgLoad()方法渲染数据到页面,这样图片高度就可以随视口改变发生改变,适应各种大小屏幕。

methods: {
    // 下面的 imgLoad 是页面渲染完成的加载方法,确保屏幕中的图片的高度第一次渲染到页面。
    imgLoad () {
      this.$nextTick(() => {
        this.bannerHeight = this.$refs.bannerHeight[0].height
        console.log(this.$refs)
      })
    }
  },
// 下面是增加监听事件,当视口发生变化的时候,得到此时图片的高度赋值给 bannerHeight
  mounted () {
      this.imgLoad()
      window.addEventListener('resize', () => {
          this.bannerHeight = this.$refs.bannerHeight[0].height
          this.imgLoad()
      }, false)
  }
请求本地图片需加require.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,196评论 0 1
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,954评论 1 18
  • It's a common pattern in React to wrap a component in an ...
    jplyue阅读 3,411评论 0 2
  • 1、什么是react React.js 是一个帮助你构建页面 UI 的库。React.js 将帮助我们将界面分成了...
    谷子多阅读 2,654评论 1 13
  • 爸爸去踢球了,踢完还有小聚餐,这真是让我和宝宝独自待在家里的节奏。 我们也不孤单,生活很丰富哈。 散步完了,很凉快...
    安星阅读 153评论 0 0

友情链接更多精彩内容