Echarts高和宽自适应问题

Posted gxr-tygy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Echarts高和宽自适应问题相关的知识,希望对你有一定的参考价值。

写在前面:echarts如果不给高度是无法显示的,这在很多场景中是非常不方便的。以下通过父div的高来计算echarts的高,以达到高度自适应的需求。

以下代码是在vue中引用echarts。

页面代码:

<div class="chartDiv" id="chartDiv_h">
       <div id="myChart_h"></div>
</div>

父div的css样式:

.chartDiv
  width: 100%;
  height: 100%;
  margin: 0 auto;

echarts代码块:

let myChartId = document.getElementById(chartId);
//高度计算
this.chartssize(document.getElementById(chartPid),myChartId);

let myChart = echarts.init(myChartId);
let option = 
          。。。
        ;
// 为echarts对象加载数据
myChart.clear();
myChart.setOption(option,true);
//建议加上以下这一行代码,不加的效果图如下(当浏览器窗口缩小的时候)。超过了div的界限(红色边框)
window.addEventListener(resize, function () 
      myChart.resize()
);

高度计算方法chartssize():

    //为图表计算高度
    chartssize(container, charts) 
      function getStyle(el, name)
      
        if (window.getComputedStyle) 
          return window.getComputedStyle(el, null);
         else 
          return el.currentStyle;
        
      
      let wi = getStyle(container, width).width;
      let hi = getStyle(container, height).height;
      charts.style.height = hi;
    

写在后面:针对js部分的问题打开浏览器开发者模式,使用断点在console里面直接书写js代码慢慢调试可以发现解决大部分问题。

以上是关于Echarts高和宽自适应问题的主要内容,如果未能解决你的问题,请参考以下文章

NPOI 列宽自适应 代码示例

elementUI table列宽自适应后,列数过少,出现空白

如何用CSS实现DIV的高宽自适应浏览器大小?

datatables定义列宽自适应方法

让DataGridView的列宽自适应内容

POI导出excel:设置字体颜色行高自适应列宽自适应锁住单元格合并单元格...