有这样一个需求:

因为list列表可能每一项的高度都不一样,要实现左侧步骤条动态高度,需要获取列表每一项的具体高度。所以想到给list每一项添加一个 ref,从而获取每一项的高度。

1、使用index给每一项添加 ref ,:ref="`line_item${index}`" ,这样每一项都会有一个不同的 ref,line_item0、line_item1...

 <div class="line_item" :ref="`line_item${index}`" v-for="(item, index) in lineTimeList" :key="index">
</div>

2、通过for循环获取每一项的高度

initLineHeight(){
      this.lineHeight = 0
      if(this.lineTimeList.length>1){
        this.lineTimeList.forEach((item,index) => {
          if(index<this.lineTimeList.length-1){
            // 不要最后一个li
            this.lineHeight+=this.$refs[`line_item${index}`][0].offsetHeight
          }
        });
      }
    },

注意:this.$refs[`line_item${index}`] 返回的是一个数组,所以需要this.$refs[`line_item${index}`][0]获取第一项就可以

 

本文是获取高度,如果要获取其他属性,按需获取。 

Logo

前往低代码交流专区

更多推荐