echarts 显示隐藏后宽度高度变小问题

简介: 笔记

实况解析



见下图,此图中,数据总统计下有两个大的分类:


表格数据(table形式)

echarts(数据可视化形式)

我可以点击按钮,切换两个视图(通过控制display)产生的问题是:


如果默认显示 echarts,如下图,是没有问题的,但如果优先显示表格,再切换到 echarts界面,就会出现高度和宽度不对的情况。


1. 正常情况下


15.png

什么称之为正常情况 => echarts的外部容器宽高都够,且初始状态为display:block


2. 非正常情况


16.png

非正常情况 =>  echarts的外部容器宽高不明确,因为其初始状态为display:none。此时echarts会默认设置最小宽度与高度,如上图所示。


3. 处理方案及思路



原因上面已经简述了,这时候应该思考的是:


它是什么时候绘制的?

找到绘制方法

等echarts的父元素设置为display:block再去渲染

不能重复渲染,只渲染一次,除非数据更新了(考虑到性能问题)


4. 解决方案



本解决方案是将echarts封装成子组件的形式(很方便,建议使用):


默认的渲染方式是(echarts.vue):

   drawLine() {
      // 基于准备好的dom,初始化echarts实例
      // console.log(this.id);
      let myChart = echarts.init(document.getElementById(this.id));
      // 绘制图表
      myChart.setOption({
        title: {
          text: "",
        },
        tooltip: {
          trigger: "axis",
        },
        legend: {
          data: ["新增用户", "充值", "返利", "UV日活", "PV访问量", "发贴数"],
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true,
        },
        xAxis: {
          type: "category",
          boundaryGap: false,
          data: [],
        },
        yAxis: {
          type: "value",
        },
        series: [
          // 数据
        ],
      });
    },

以上是绘制的方法,默认的调用是在此组件的挂载阶段:

  mounted() {
    this.drawLine();
  }

由于我们是在父组件调用,当容器为display:block的时候调用,所以此处调用注释掉!

父组件:

    // 切换div显示隐藏的方法
    changeTable(type) {
      if (type) {
        this.isTable = true;
      } else {
        this.isTable = false;
        if (!this.isInit) {
          this.$nextTick(() => {
            // hd为echarts组件上的ref值
            this.$refs.hd.drawLine();
          });
          // isInit 为节流阀 防止多次绘制
          this.isInit = true;
        }
      }
    },


目录
相关文章
|
JavaScript 前端开发
vue中设置echarts宽度自适应
vue中设置echarts宽度自适应
338 0
vue中设置echarts宽度自适应
|
JavaScript 前端开发
vue中动态加入ECharts图表时,ECharts宽度自适应/不能100%撑开
vue中动态加入ECharts图表时,ECharts宽度自适应/不能100%撑开
11482 0
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
74 1
|
2月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
433 0
|
3月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
4月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
525 1
微信小程序使用echarts图表(ec-canvas)
|
4月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
4月前
Echarts——如何默认选中图表并显示tooltip
Echarts——如何默认选中图表并显示tooltip
84 1

热门文章

最新文章

下一篇
DataWorks