echarts多图标缩放问题

同一个界面需要多个echarts并且属于一类图形,多个图形公用同一个option和构建函数,绑定window.onresize后,只有最后一个图形可缩放,其他的都不可以,构建代码如下:

    buildPie(domId, titleName, data, customOption = {}) {
      var chartDom = document.getElementById(domId);
      var myChart = echarts.init(chartDom);
      myChart.clear();
      var option;
      option = {
        title: {
          text: titleName,
          left: 'center',
          itemGap: 0,
          textStyle: {
            fontSize: 12
            // fontWeight: 'normal'
          }
        },
        legend: {
          top: 'bottom'
        },

        tooltip: {
          trigger: 'item',
          position: 'top'
        },
        series: [
          {
            type: 'pie',
            radius: '55%',
            data: data,
            top: data.length > 6 ? '-15%' : '0%',
            // 设置鼠标放到哪一块扇形上面的时候,扇形样式、阴影
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            },
            // 设置值域的那指向线
            labelLine: {
              normal: {
                show: false
              }
            },
            // 设置值域的标签
            label: {
              normal: {
                // 设置标签位置,默认在饼状图外 可选值:'outer' ¦ 'inner(饼状图上)'
                position: 'inside',
                formatter: customOption.formatter || '{d}%'
              }
            }
          }
        ]
      };

      option && myChart.setOption(option);
      window.onresize = function () {
         myChart.resize();
      };
      myChart.resize();
      return myChart;
    },

问题解决办法:一次要将所有的图标都要在onresize里调用下,值得注意的是使用for-each好像不行,目前不知道什么原因,有知道的可以留言。

代码如下:

 this.$nextTick(()=>{
     var charts = [];
     var echartsList = [{}, {}]; // 对象数组
     for(var i = 0; i<echartsList.length; i++ ){
       let item = chartsList[i];
       let mychat = this.build(item.id, item.title, item.data);
       charts.push(myChart);
     }
     window.addEventListener('resize',()=>{
       for(var i = 0; i < charts.length; i++){
         charts[i].resize();
       }
     })
   })

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值