element秃头小笔记

关于element-resize-detector监听容器宽高变化遇到的一个坑

       今天,记录下来人生的第一篇博客,之前做笔记都是用文档,但是呢 ,感觉,感觉在在博客中记录一下也挺好的,学习嘛木九十不断累积的过程…好了不吹牛逼了,直奔主题。
今天,做项目的时候由于需求,做charts图表的时候,因为需要做自适应容器,因为项目又是基于vue+element开发的,自然而然想到了用 element-resize-detector监听dom元素
这里,也顺便说一下element-resize-detector的相关运用:
第一步:基于vue嘛,当然通过npm install element-resize-detector下载相关依赖嘛

  npm install element-resize-detector

第二步:将依赖引入import elementResizeDetectorMaker from ‘element-resize-detector’,当然也可以全局抛出,方便项目各个页面运用。看自己需求,在main.js:

import ElementResizeDetectorMaker from "element-resize-detector"
Vue.prototype.$erd = ElementResizeDetectorMaker()

第三步:项目运用:chinaMapChart是div的id,(当然也可以通过ref获取dom元素)

this.$erd.listenTo(document.getElementById("chinaMapChart"), (element)=>
console.log(element,“element”)
{
        //这里是你要做的操作,比如监听chartsdiv容器变化时候可以重新,that自己在上面声明一下,例如:
        that.$nextTick(function () {
        //使echarts尺寸重置
        that.myEcharts.resize();
    })
          })

当我以为一切都挺很顺利的完成开发工作的时候,这时候问题来了,我打印了一下那个element参数,我发现这里的代码是一直死循环的,我又把代码重新看了一遍,发现没有问题,以前也用过这个操作监听元素,都没遇到这种坑,后来我定位问题,既然他一直触发里面的事件,说明肯定是这个div容器的宽高可能是一直变化的,我看了一下这个我的这个div的父元素,我用了flex布局,因为一把梭容易嘛,因为我把一个div垂直方向分成了几份不一样的比例,后来我直接改成用height他就没有意向在里面一直运行,我觉得之所以有这样的原因,坑是在flex布局是实时计算改变对应的宽高的吧。
在这里插入图片描述
好了,问题解决了,大家一起加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值