基于Echarts图表在div动态切换时不显示的解决方式


Posted in Javascript onJuly 20, 2020

简单粗暴,先上图,大概长这样:

基于Echarts图表在div动态切换时不显示的解决方式

在使用vue时有遇到像上图下拉框change事件切换div,change切完后大概会变成这个样子:

基于Echarts图表在div动态切换时不显示的解决方式

上代码:

<div class="test">
  <p class="title">
    <select v-model="selected" v-on:change="change">
     <option v-for="option in options" v-bind:value="option.value">
      {{ option.text }}
     </option>
    </select>
  </p>

  <span>{{selected}}</span>
  <div id="timesharechart" v-show="isvisible" ></div> 
  <div id="receiveDispose" v-show="!isvisible"></div> 
</div>

<script>
  export default{
    name:"test",
    data(){
      return {
        selected: 'timeshare',
        options: [
         { text: '分时警情', value: 'timeshare' },
         { text: '接警与处置', value: 'receive' }
        ],
        isvisible:true
      }
    },


    methods:{
      change:function(){
        if(this.selected == "receive"){
          this.isvisible = false;
        }else{
          this.isvisible = true;
        }
      },
</script>

这里时我们为了确定当前显示的是哪个block,所以在data中引入了“selected”,方便其他操作,其实完全可以采用change事件和v-if指令来判断 true和false的方法来切换block。

code:

change:function(){
        if(this.isvisible == true){
          this.isvisible = false;
        }else{
          this.isvisible = true;
        }
      }

这样就变成了true, false。

那么问题来了:

以上解决了change事件对div图表容器的切换显示内容,但是问题是切换后不显示图表,控制台报错:“Can't get dom width or height”,检查了遍div容器是设置了大小的,上网一查才知道是因为echarts只能在显示的容器中渲染,解决办法:在容器切换之后再渲染图表,也就是在触发切换的事件中操作echarts初始化,我是这么解决的,在调用echart.init之前,给图形dom加上对应的宽度和高度。

drawCharts(){
   // 基于准备好的dom,初始化echarts实例,dom容器中需要在调用echart.init之前,必须给图形dom加上对应的宽度和高度,不然echarts不能渲染
   document.getElementById("container").style.display = "block";
   let myChart = this.$echarts.init(document.getElementById('container'));
        // 绘制图表
        receiveChart.setOption({});
  }

其他tab,button等切换方式如出一辙。

补充知识:echarts切换后页面空白

我遇到的问题是切换后页面空白,切换第二次页面出现了echarts图。为了解决这个问题,我再页面初始化时就调用了隐藏的echarts方法,虽然解决了第一次切换没图的问题,但同时出现了第二个问题,echarts图的大小需要在改变浏览器后才跟设置大小一致。

基于Echarts图表在div动态切换时不显示的解决方式

后面通过百度说宽高必须限制死,所以我把宽度从百分比设置为600px,暂时解决这个问题。

基于Echarts图表在div动态切换时不显示的解决方式

以上这篇基于Echarts图表在div动态切换时不显示的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一段实现页面上的图片延时加载的js代码
Feb 11 Javascript
jquery validate使用攻略 第四步
Jul 01 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
Jan 15 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
不得不分享的JavaScript常用方法函数集(上)
Dec 23 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
Vue watch响应数据实现方法解析
Jul 10 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 #Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 #Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 #Javascript
解决vue项目router切换太慢问题
Jul 19 #Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 #Javascript
vue2.* element tabs tab-pane 动态加载组件操作
Jul 19 #Javascript
解决vue中el-tab-pane切换的问题
Jul 19 #Javascript
You might like
PHP在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
PDO::errorCode讲解
2019/01/28 PHP
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
python ElementTree 基本读操作示例
2009/04/09 Python
python for 循环获取index索引的方法
2019/02/01 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
介绍一下write命令
2012/09/24 面试题
2014社区三八妇女节活动总结
2014/03/01 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
基层党员对照检查材料
2014/09/24 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
2014年党总支工作总结
2014/12/18 职场文书
参加招聘会后的感想
2015/08/10 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
导游词之五台山
2019/10/11 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python