好久没有更新博客了,今天搞了快一天的网页自适应,头晕。。。因为最近开始做项目,项目中需要用到图表方面的知识,于是乎接触到了echarts,所以其实我也算是新手了。只是近几天弄了很久的关于图表隐藏之后再次显示,却无法显示出来的问题。在网上也搜寻了好久。都没有特别对口的答案,echarts图表一直是显示的到还没发现有什么异常,只是如果你想要做类似选项卡切换图表的隐藏和显示的话,这个问题就不得不直视了。废话讲了那么多,开始说解决方法。

在解决之前需要知道原因:相信网上一搜,基本上就可以确定大多数的情况都是一样的,那就是echarts图表隐藏之后再次显示可能会涉及到没有高宽度的问题,或者你可以右击检查一下你的图表的宽度此时是0还是NaN!!!  那么知道没有高宽度,那么就需要在display:block显示之前给它一个宽高,这样就没有问题了。那么这个宽高的设置可以有两种设置方法(目前我可以知道的想到的),一是在行间设置宽高,这样的宽高度就是固定的,永远都是那么多,比如说这样

这样子设置之后的话,可通过设置一个按钮来显示图表,那么显示是成功了,但是如果想要自适应窗口大小,跟随窗口大小变化而变化,那么这种方式就不可取了,就需要使用一种相对的宽高了,你有没有想到呢?那就是当前窗口的大小了,window.innerHeight   window.innerWidth;那么如果是两个图表,像我这样的话,可以封装一个函数来设置图表的宽和高,像这样:

但是我先说我这种写法比较死,高度没有用窗口的高度,宽度的话窗口宽度太宽了,所以我大概减了80px;没有把对象抽象出来当成参数来传递,所以不具有代码的复用性,大家可以根据这个自行封装一个复用性高的函数,那么这就是为两个图表设置好了宽度和高度,接下来就是在显示之前调用一下该函数,那么就意味着在显示之前我的图表有了宽度和高度,那么就可以显示了,如果想要改变窗口大小的时候图表也跟着变化的话,那么就由需要做一点小工作,如下:

后边的两个语句的意思是说(因为我有两个按钮,用于切换两个图表,那么每次按钮点击的时候都会自动去触发window.onresize事件,而不用等到我手动的去拖动窗口的时候,才去触发,这样的话就可以实现随时的自适应大小,而不会出现点击第一个按钮改变窗体大小之后,再去点击第二个按钮,会发现第二个按钮对应的图表没有根据之前变化的窗体大小而变化),所以要加上这么一句自动替我们触发resize事件,这是jquery的语法,不太清楚的童鞋可以百度一下。最后,还有一点:

这块代码就是自适应窗体大小的代码,这句和上面的trigger那句不冲突不重复的,一个是改变窗体大小,一个是点击按钮,两个都需要触发resize事件。

差不多就这些玩意儿了,大家可以根据自己的情况做相应的小调整,基本上就可以解决大多数这种类型的状况了。

echarts隐藏之后的显示问题的更多相关文章

  1. echarts —— tooltip 鼠标悬浮显示提示框属性

    最近一直在使用echarts,当然也被其中的各种属性整的头大,记录一下其中遇到的问题. tooltip:鼠标悬浮时显示的提示框. 今天想要记录的是[自定义提示框的内容],如下图,鼠标悬浮时提示框内显示 ...

  2. 【extjs】 Extjs中的Ext.grid.Panel隐藏列会显示在表头中解决方法

    在Extjs中的GridPanel会有这样的情况,隐藏列会显示在menuDisabled中,但是这个一般没有什么用处,只是用于后台取值的作用,感兴趣的朋友可以了解下啊,希望本文对你有所帮助   在Ex ...

  3. 利用JS做到隐藏div和显示div

    div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白 style="visibility: none;" document.getElementById( ...

  4. [置顶] echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐)

    echarts x轴标签文字过多导致显示不全 如图: 解决办法1:xAxis.axisLabel 属性 axisLabel的类型是object ,主要作用是:坐标轴刻度标签的相关设置.(当然yAxis ...

  5. echarts x轴文字显示不全解决办法

    标题:echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐):http://blog.csdn.net/kebi007/article/details/68488694

  6. [WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口

    原文:[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 [WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 周银辉 现象: 大家可以试试下面这个很有趣但会带来Defect的现象:当我 ...

  7. echarts柱状图坐标文字显示不完整解决方式

    echarts柱状图坐标文字显示不完整解决方式 本文转载自:https://jingyan.baidu.com/article/ab69b2707a9aeb2ca7189f0c.html echart ...

  8. JQuery 简单的文字超出部分隐藏下拉显示

    HTML代码: <body> <div class="txt_bos"><!--在每一个放置文字的class外面包一个div,以便设置动画样式用,同样 ...

  9. text-overflow:ellipsis实现超出隐藏时省略号显示

    text-overflow:ellipsis;要达到的效果是:文字超出容器宽度时,文字被隐藏的文字用省略号代替.所以该属性只能用于块状元素或行内块元素中,对行内元素是不起作用的. 一般和white-s ...

随机推荐

  1. JAVA并发编程学习笔记------结构化并发应用程序

    1. Executor基于生产者-消费者模式,提交任务的操作相当于生产者,执行任务的线程相当于消费者,如果要在程序中实现一个生产者-消费者的设计,最简单的方式通常就是使用Executor 2. Exe ...

  2. leetcode-179-Largest Number(理解规则,自定义cmp函数进行排序)

    题目描述: 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明 ...

  3. 【NOIP2013】 华容道 bfs预处理+bfs

    这一题我们考虑一个最裸的算法: 我们设$dp[i][j][k][l]$表示当前棋子在$(i,j)$且空格在$(k,l)$时的最小步数 然后显然随便转移一下就好了,时间复杂度为$O(q(nm)^2)$. ...

  4. jQuery过滤选择器:first和:first-child的区别,CSS伪类:first-child

    最近项目中遇到需求:只在第一列不能删除,不显示小叉号:点击可添加一列,后面的列右上角显示小叉号,可以点击删除. 我是使用以下方法解决这个小需求 :CSS伪类选择器:first-child设置所有小叉号 ...

  5. spring boot启动加载数据

    实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求.为了解决这样的问题,spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实 ...

  6. Eclipse-离线安装Memory Anlysis Tool

    Eclipse版本:Version: Mars.2 Release (4.5.2) 1.从官网下载MAT Memory Anlysis Tool http://www.eclipse.org/mat/ ...

  7. 复刻smartbits的国产网络测试工具minismb-如何测试ip限速

    复刻smartbits的网路性能测试工具MiniSMB,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最 ...

  8. Java数据库连接池原理与简易实现

    1.什么是数据库连接池 我们现在在开发中一定都会用到数据库,为了提高我们的系统的访问速度,数据库优化是一个有效的途径.我们现在开发中使用数据库一般都要经历以下的四个步骤:(1)加载数据库的驱动类,(2 ...

  9. 基于obs+nginx-rtmp-module搭建自己直播的系统

    前言 一句唠叨,工欲善其事,必先利其器,在程序员的工作里,搭建各种环境往往花费过多不必要的时间,这里建议搭建服务端环境时,尽量避开win.macos这种系统,个人比较推崇centos. 操作 下面以c ...

  10. Beta阶段——Scrum 冲刺博客第一天

    一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 今日是Beta冲刺第一天,昨日没有完成的工作 今天计划完成的工作 实现对i ...