echarts图表初始化到隐藏的div中造成宽高比例不对问题解决

问题描述:
最近在做Echarts,下图是两个Echarts图表,可以点击月视图和年视图来切换。我的思路是使用ajax获得数据后,初始化这两个图表,然后通过点击来切换,但是在将隐藏的div显示出来时,图表的长宽比例错乱,宽度被限定成了100px。如下图
在这里插入图片描述
这是因为在初始化图表时由于div被隐藏了,他的宽高无法获取,所以就自动给了一个宽度。下面是我的思路。话不多说,先看代码。
1.html代码

 <ul class="nav nav-tabs">
    <li class="active"><a href="#tab1" data-toggle="tab"></a></li><!--默认选中-->
    <li><a href="#tab2" data-toggle="tab" ></a></li>
 </ul>

<div class="tab-content">
   
   <div class="active" id="tab1"><!--默认显示-->
          <div id="Echarts1" style="width:100%;height:450px;"></div>
   </div>
   <div class="" id="tab2">
         <div id="Echarts2"  style="width:100%;height:450px;"></div>
   </div>
</div>

前端使用class中avtive的有无来控制div标签的显示和隐藏。默认情况下Echarts1显示,Echarts2隐藏,所以绘制图表时,由于Echarts2被隐藏了,Echarts无法获取到隐藏的div长宽,所以长宽比例出现了问题。
2.jQuery代码

ajaxs("url",{
       ..参数..
},function (result) {
      if (判断){
              Echarts1(result);
              BjjjxEcharts_year(result);
      }
});

function Echarts1(jsondata) {
     var myChart_Echarts1 = echarts.init(document.getElementById('Echarts1'), 'theme');
     ..参数/数据..
     //根据窗口的大小变动图表
     window.addEventListener("resize", function () {
            myChart_Echarts1.resize();
     });
}
function Echarts2(jsondata) {
     $("#Echarts2").css('width', $("#Echarts1").width());//在第二个图表初始化前,将第一个图表的宽度赋值给第二个
     var myChart_Echarts2 = echarts.init(document.getElementById('Echarts2'), 'theme');
     ..参数/数据..
      //根据窗口的大小变动图表
     window.addEventListener("resize", function () {
            myChart_Echarts2.resize();
     });
}

主要就是下面这行代码,在Echarts2初始化前,获得Echarts1的宽度。因为Echarts1是默认显示的,他的长宽是正常的。
$("#Echarts2").css(‘width’, $("#Echarts1").width());

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值