Echarts图表根据浏览器窗口缩放进行动态缩放,多个echarts同时缩放

更改之前的效果图:

在这里插入图片描述
更改之前浏览器窗口放大缩小图表都不会进行动态的缩放,
更改之后的效果图:

在这里插入图片描述
更改之后图表就会根据浏览器窗口大小实时监听进行缩放
代码:

        topChart.setOption({
          series: [
            {name: '最大值',type: 'line',stack: '最大值',data: dataMax},
            {name: '最小值',type: 'line',stack: '最小值',data: dataMin},
            {name: '平均值',type: 'line',stack: '平均值',data: dataAvg},
          ]
        });
        window.addEventListener("resize",()=> {//监听浏览器窗口大小
          topChart.resize();
        });

如果有多个图表同时渲染,给个定时器就可以了,ss[0],ss[1],ss[2],ss[3]分别表示四个图表的class

var resizeTimer = null;
window.addEventListener("resize", () => { 
	if (resizeTimer) {
		clearTimeout(resizeTimer)
	}
	resizeTimer = setTimeout(function(){
      ss[0].resize();
      ss[1].resize();
      ss[2].resize();
      ss[3].resize();
	}, 10);
});

或者循环缩放也是可以的,个人感觉第二种比较好

   this.$nextTick(()=>{
     var charts = [];
     var echartsList = document.querySelectorAll(".mychart"); 
     for(var i = 0; i<echartsList.length; i++ ){
       var myChart = echarts.init(echartsList[i]);
       myChart.setOption(this.option);
       charts.push(myChart);
       myChart.setOption({
         xAxis:{data: this.echartTime},
         series:[{ data: this.echartDate[i]}]
       });
       charts.push(myChart);
     }
     window.addEventListener('resize',()=>{
       for(var i = 0; i < charts.length; i++){
         charts[i].resize();
       }
     })
   })

没了,结束了,是不是很简单呐,如有问题,欢迎留言。
最后:如果此篇博文对您有帮助,还请动动小手点点关注点点赞呐~,谢谢 ~ ~

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨同学*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值