基于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 相关文章推荐
Json对象与Json字符串互转(4种转换方式)
Mar 27 Javascript
用jquery存取照片的具体实现方法
Jun 30 Javascript
JS将光标聚焦在文本最后的实现代码
Mar 28 Javascript
javascript实现des解密加密全过程
Apr 03 Javascript
js调试系列 断点与动态调试[基础篇]
Jun 18 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
JavaScript操作DOM元素的childNodes和children区别
Apr 01 Javascript
javascript实现控制文字大中小显示
Apr 28 Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 Javascript
jquery获取复选框的值的简单实例
May 26 Javascript
微信小程序实现滑动切换自定义页码的方法分析
Dec 29 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
Nov 04 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
php多任务程序实例解析
2014/07/19 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
python简单文本处理的方法
2015/07/10 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
python热力图实现简单方法
2021/01/29 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
财务经理岗位职责
2013/11/09 职场文书
爱我中华演讲稿
2014/05/20 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
七年级作文之游记
2019/12/11 职场文书