Echarts图表大小随窗口变动而自适应变动(resize)

数据可视化的时候用到echarts,要想生成图表能够根据大小自适应,就要用到echarts自己的resize方法。chartDemo是echarts实例,this.$refs.chartContainerParent是echarts元素父级元素。
1、页面大小变化(window.onresize)

window.onresize=() => {
    if (chartDemo)  chartDemo.resize();
}

2、上面的写法遇到有左导航栏的,导航栏打开关闭切换就歇菜了。这时候就会用到resize-detector这个插件去监听echarts实例元素的父级元素。resize-detector是个npm插件,地址:https://www.npmjs.com/package/resize-detector。用法上地址有,但还是要写一下我在vue里的使用😀。

<div class="body" ref="chartContainerParent">
    <div ref="chartCantainer" style="width: 100%;height:238px;"></div>
</div>
mounted() {//上来就给他监听上,看他还不自适应呢
    addListener(this.$refs.chartContainerParent, this.resize);
},
beforeDestroy() { //一定要在这个生命周期销毁,不然在销毁时找不到元素报错,不信你试试🤨
    removeListener(this.$refs.chartContainerParent, this.resize);
    if (this.chart.dispose) this.chart.dispose();
},
methods: {
    resize() {
      if (this.chart.resize) this.chart.resize();
    }
}

网上很多都是window.onresize,所以就把第二种写出来了,希望对大家能有帮助,有用就点个赞么,靓仔靓女🤣。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,861评论 1 11
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,620评论 0 21
  • 特别说明:在开始这一切之前,请开发移动界面的工程师们在头部加上下面这条meta: 简单事情简单做-宽度自适应所谓宽...
    张宪宇阅读 13,289评论 0 3
  • 什么是数据驱动? 使用过Vue React框架我们就知道,我们不再更改某个DOM的innertext和innerh...
    Mr_Treasure阅读 8,406评论 0 5
  • 官网奉上ECharts vue项目中可以引入echarts或者vue echarts,大致区别如下: echart...
    球_97阅读 24,216评论 2 12