基于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 相关文章推荐
Maps Javascript
Jan 22 Javascript
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
Aug 25 Javascript
js输出列表实现代码
Sep 12 Javascript
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
Oct 29 Javascript
Layui实现带查询条件的分页
Jul 27 Javascript
基于angular实现树形二级表格
Oct 16 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数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
在python中做正态性检验示例
2019/12/09 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
计算机专业毕业生的自我评价
2013/11/18 职场文书
董事长秘书岗位职责
2013/11/29 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
个人求职信范例
2014/01/29 职场文书
社团活动总结
2014/04/28 职场文书
室内设计专业自荐信
2014/05/31 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
幼儿园辞职书
2015/02/26 职场文书
跑出一片天观后感
2015/06/08 职场文书
旅游安全责任协议书
2016/03/22 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技