关于echarts 同页面多图表同实例名resize只变一个的解决方法
来源:互联网 发布:美国经典电影知乎 编辑:程序博客网 时间:2024/04/29 14:08
今天项目中做一个客户决策分析的echarts图表分析,在同一页面有多个图,在浏览器改变大小的同事图表也要跟着变化,但是单纯的使用
window.addEventListener("resize",function(){ $Chart.myChart.resize(); });
时不行的 ,作用的只是最后一个测试7 才会变 由于图表的所有数据和数量都是通过服务端过来的,因此所有的实例的名称都一样
for(var i = 0 ;i < chartDatas.length; i++){ var datas = chartDatas[i]; var list = datas.dataSource; var body = '<div class="box'+ i+' box"style="height:'+datas.displaySize.split(",")[0] +'%;width:'+datas.displaySize.split(",")[1]+'%;position:absolute;top:'+ datas.location.split(",")[0]+'%;left:'+datas.location.split(",")[1] +'%">' + '<div class="main'+ i +'"style="position:absolute;top:0;left:0;z-index:20;width:100%;height:100%;overflow: hidden;">' + '<div id="main'+ i +'" style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:10;overflow: hidden;">' + '</div>' +' </div>' + '</div>'; $("#content").append(body); var type = parseInt(datas.chartType); if(type == 0){ var list0 = [datas.dataSource.caseInfo]; $Chart.get(type,"main"+i,list0,datas.title,datas.color,datas.unit,distance); }else if(type == 7){ var div = "<div style='font-weight:bold;color:"+ datas.color +"'>"+ datas.title +"</div>"; $("#main"+i).html(div).append(htmlDecode(datas.html)); }else{ $Chart.get(type,"main"+i,list,datas.title,datas.color,datas.unit,distance); } }
$Chart.get是我自己写的插件 包含了所有图表的类型,通过判断type的数值来插入不同类型的图形表,进入页面的时候插入以i为顺序的不同div中如果直接在for循环中写resize的话是不行的只有 测试7 会resize,但是在for中console.log出$Chart.myChart(实例化名在插件中定义的)是把所有的都会打印出来,但是resize只会是最后一个,最开始我实在window的resize中再写了一个resize但是作用也是最后一个,打印出来不是全部而是最后一个。解决的方法是什么呢?由于在for中能打印出来所有的实例化,那么我们就var 一个空数组charts在for外面
var charts = []
在for循环中将$Chart.myChart 都push到这个数组中
然后在for循环外添加resize
window.addEventListener("resize",function(){ for(var i = 0; i < charts.length; i++){ charts[i].resize(); } });这样每一个实例化都会跟随浏览器的变化而变化。
阅读全文
0 0
- 关于echarts 同页面多图表同实例名resize只变一个的解决方法
- springMVC同属性名的多对象
- Echarts3.0:实现一个页面放多个Echarts图表的方法
- echarts---一个页面内创建多个图表
- Echarts一个页面多图图表宽度自适应解决方案
- 同一款Android软件有两样东西是不会变的:包名和数字签名
- echarts实现一个页面同时显示多个不同形状的图表/动态往图表中存放数据
- Mina中关于多个同类型Filter(如ProtocolCodecFilter)实例共存问题的解决
- Mina中关于多个同类型Filter(如ProtocolCodecFilter)实例共存问题的解决
- 只同0交换的排序
- 佛关于同的回答
- 同页面多UpdatePanel的单独刷新问题
- 同页面多UpdatePanel的单独刷新问题
- 同页面多UpdatePanel的单独刷新问题
- [C++] 关于子类声明与父类同名同类型的成员变量的问题
- 一个强大的图表库 -- ECharts
- Web和本地页面同存在一个页面时的计算高度问题
- 内嵌同域的页面
- The Flash-14
- Java集合--Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- IntelliJ IDEA unmapped spring configuration files found
- easyui-validatebox报错
- mysql获取当前时间,日期之前和日期之后的日期
- 关于echarts 同页面多图表同实例名resize只变一个的解决方法
- LOCAL_PRIVILEGED_MODULE 详解(1)
- 静态的应用
- php filter_var() 函数详解
- 最长上升子序列
- jar读取资源配置文件,jar包内包外,以及包内读取目录的方法
- 几种流行Webservice框架性能对比
- [Mac OS]ASUS z97-K R2.0 + GTX960 + Clover v2.4k r4098 Install Sierra 10.12.5 安装过程中遇到的问题及解决方案
- gRPC的使用(一)之异步单项RPC的使用流程