解决Echarts 隐藏再显示后宽度高度变小的问题

问题:很多时候会用到把echarts图放在弹框内。点击后显示弹框出现图表,但是这样会遇到问题就是打开弹框的时候图表会缩的非常小挤在一块。
原因:是因为echarts根据父级盒子大小来渲染图表,但是因为你隐藏了盒子,所以echarts检索不到父级宽高,然后就导致默认给自己了一个很小的宽高,就会挤在一块。

解决办法

所以我们也就顺着这个原因解决,那就再他弹框出来后从新获取一下他的宽高从新渲染一下不就好了吗。
这里就是注意再myChart初始化后直接先resize来构图一遍,这样就保证了每次调用这个方法都会在初始化后先获取宽高然后才给数据渲染图表

    topGraph(val) {
      var myChart = this.$echarts.init(this.$refs["topechart"]);
      //这是重点,就是在元素绑定后直接resize一下,获取宽高从新渲染一遍。
      myChart.resize();
      var option = {
        title: {
          text: "波形趋势",
          left: "center",
          top: 0,
          bottom: "auto",
          textVerticalAlign: "auto",
          padding: [0, 0, 0, 0],
        },
        //全部颜色为黑
        color: "#222",
        grid: {
          left: "3%",
          right: "4%",
          top: "20%",
          bottom: 0,
          containLabel: true,
        },
        toolbox: {
          feature: {
            saveAsImage: {},
          },
        },

        xAxis: {
          type: "category",
          boundaryGap: false,
          //X轴刻度信息
          data: this.xData,
          axisLabel: {
            show: true,
            interale: 0, //坐标轴刻度标签的显示间隔,设置成 0 强制显示所有标签
            rotate: 40, //设置日期显示样式(倾斜度)
            showMaxLabel: true,
          },
        yAxis: [
          {
            type: "value",
          },
        ],
        series: val.pointList,
      };
      //初始化表格
      myChart.clear();
      myChart.setOption(option);
      //监听,根据视口变化动态从新渲染表格
      window.addEventListener("resize", function () {
        myChart.resize();
      });
    },
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

接口写好了吗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值