当前位置:首页 > 日记 > 正文

echarts学习笔记之图表自适应问题详解

echarts学习笔记之图表自适应问题详解

前言

为了直观查看公司服务器各个进程占用的内存动态情况,我使用echarts进行数据可视化,具体的实现过程按下不表。

最后实现的效果如图:

然后问题就来了,因UI采用了Bootstrap响应式框架,所以除了图表之外其他都是响应式。当窗口缩小后,就会发生很尴尬的出界事件。

如图:

针对这个问题,刚开始的解决思路及方法:把echart容器的宽度设置为100%;

<div class="col-sm-12 row" id="logic1_node" style="width:100%;height:700px"></div>

这样之后依然存在问题:页面初始的宽度是多少,canvas宽度就是多少,之后不会再变化。

便尝试通过jsDOM操作,强行令canvas的宽度为100%,however too young too simple!

调整浏览器宽度发现,canvas画布的宽度是随之变化的,然而画布里面的图表内容却像被挤压在一起的馅饼,模糊扭曲了。

到这里细心的同学可以发现,echart图表一旦绘制成功,内容就不会再变化。所以对于echart图表,其"响应式"应该是可以随着窗口调整不断被重新绘制,不是简单的调整宽高。

到echart官网看了Example,发现官网的实例都具有响应式功能,确实不是单纯的宽度改变,是每次调整后图表是重新绘制。猜想echart源码里应该有resize这个API,打开调试器,打开echart源码,Ctrl+F,果然找到了。

再仔细查看官方文档:

echart图表本身是提供了一个resize的函数的。

于是当浏览器发生resize事件的时候,让其触发echart的resize事件,重绘canvas。(也可以通过其他事件触发)

附:Echarts 页面多图自适应的解决办法

网上看到有不少人使用Echarts抽象出来的框架,实现自适应的效果代码:window.onresize  = option.chart.resize() ,  这个代码基本是官网上的window.onresize = myCharts.resize();的翻版。

但在实际的应用中一个页面可能会有好几个Echarts图表,而使用window.onresize = option.chart.resize() ,加载页面图表后,页面上只有一个图表会根据浏览器的变化而自适应。如果要是页面上的图表都要自适应。则需要将resize事件叠加在不同的图上面,使用一下代码可以实现。

 window.addEventListener("resize", function () {           option.chart.resize();         });

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

相关文章

PS制作黑白粉笔卡通人物画有什么技

PS制作黑白粉笔卡通人物画有什么技

人物画,有什么,黑白,卡通,技巧,  使用Photoshop快速的把人像变成黑板粉笔画效果,这种类似于人像的漫画手绘效果,以下是小编为您带来的关于制作黑白粉笔卡通人物画的PS技巧,希望对您有所帮助。制作黑白粉笔卡通人物画的PS技巧先看下最终效果…

js a标签点击事件

js a标签点击事件

点击事件,标签,电脑软件,js,当我们在处理a标签上的点击事件时发现即使href=""里面为空,点击事件的效果也不明显,这种情况该如何处理呢?常见的处理方法有以下几种:1.a href="javascript:void(0);" rel="external nofollow" onclick="met…

WPS表格怎么文字粘贴为WPS表格文字

WPS表格怎么文字粘贴为WPS表格文字

文字,教程,方法,表格,图片,  WPS表格里提供了一个将文字粘贴为图片的功能,现在小编就为大家来说明一下如何操作。希望对你有帮助!WPS表格文字粘贴为图片的方法教程鼠标点击要粘贴的内容,在弹出的菜单下选择【复制】。(如图所示)WPS表格文字…

excel中计算工龄的方法怎么用excel

excel中计算工龄的方法怎么用excel

计算,方法,工龄,员工,电脑软件,  Excel中的工龄具体该如何计算呢?下面是小编带来的关于excel中计算工龄的方法,希望阅读过后对你有所启发!excel中计算工龄的方法计算工龄步骤1:快速计算员工工龄和应享受的带薪年休假,见图excel中计算工龄的…

Word2016文档中怎么设置行距首行缩

Word2016文档中怎么设置行距首行缩

文档,首行缩进,设置,行距,电脑软件,  大家用word处理一些内容的时候,行距有时候不太合适,想要自己设置为自己需要的合理行距怎么设置呢,当然使用过word低版本的朋友应该熟悉。以下是小编为您带来的关于Word2016文档设置行距首行缩进,希望对您…

word2010中生成目录的两种教程

word2010中生成目录的两种教程

教程,两种,目录,电脑软件,  关于Word文档自动生成目录一直是我身边同学们最为难的地方,尤其是毕业论文,经常因为目录问题,被要求修改,那么下面就由小编给大家分享下word2010中生成目录的技巧,希望能帮助到您,有需要的朋友可以来看看哦。生成目…

excel表格的常用技巧excel表格有哪

excel表格的常用技巧excel表格有哪

方法,分类,表格,常用,技巧,  用Excel做表格,有时候会觉得很繁琐,但Excel有很多快速简单的用法,能够使工作事半功倍。下面小编就教你excel表格的常用技巧。希望对你有帮助!excel表格的常用技巧excel表格的常用技巧:让数字自动变成"字符型"数…

Excel表格如何转换为

Excel表格如何转换为

方法,转换为,表格,图片,电脑软件,  如何将excel工作表里面的表格转换成图片,Excel能将工作表变为图片吗?其实转换图片的方法不难。下面给大家分享Excel表格转换图片的方法。Excel表格转换为图片的方法首先我们先打开excel2007工作表,打开之…

微信公众平台添加/去掉水印图文教

微信公众平台添加/去掉水印图文教

图文教程,微信公众平台,水印,电脑软件,  当你通过微信公众号发布原创文章时,自然不想被人抄袭。那么,我们该如何在微信公众号图片里添加自己的专属水印呢?或者说,如何去掉微信公众号里的水印呢?下面,腾牛网将为大家带来微信公众平台添加/去掉…

JS ES6中setTimeout函数的执行上下

JS ES6中setTimeout函数的执行上下

执行上下文,函数,示例,电脑软件,JS,本文介绍的是setTimeout函数,延迟执行函数里的执行上下文,分享给大家供大家参考学习,来看看详细的内容:(1)ES5中,setTimeout里面的函数的执行上下文为全局上下文,举例来说:function log(){ setTimeout(function(){…

在word方框里打叉的两种方法怎么在

在word方框里打叉的两种方法怎么在

方法,方框,两种,电脑软件,word,  有些符号不常用,但是一但要使用,到处找都难找,问人也不一定找得到,就如:要在Word中使用一个小框框里的打叉的一个小符号,那么下面就由小编给大家分享下在word方框里打叉的技巧,希望能帮助到您。在word方框里打叉…

怎么去掉word2007密码的两种方法

怎么去掉word2007密码的两种方法

方法,密码,两种,电脑软件,strong,   之前的word文档设置了密码,怕忘记密码,想取消密码保护,该怎么办呢?那么下面就由小编给大家分享下去掉word2007密码的技巧,希望能帮助到您。  去掉word2007密码方法一步骤一:首先,我们先打开需要取消密码的…