bootstrap的tab中,echarts 图表宽度设为100%之后,会出现图表宽带变为100px的情况。只有第一个正常
2017-12-14 16:24
1061 查看
1.原因
echarts官方解释是Tip: 有时候图表会放在多个标签页里,那些初始隐藏的标签在初始化图表的时候因为获取不到容器的实际高宽,可能会绘制失败,因此在切换到该标签页时需要手动调用
resize方法获取正确的高宽并且刷新画布,或者在
opts中显示指定图表高宽。
地址:http://echarts.baidu.com/api.html#echartsInstance.resize
而我们的tab本身是隐藏的,所以会导致图表获取不到宽度的情况。从而是100px,如果设200%,会是200px的。。。
2.解决办法:
官方说是resize,可是bootstrap的tab js代码在bootstrap.min.js中,没发修改,也不知道怎么hack。所以如果是自己写的tab是可以做到的,但是既然又用了框架,加上前端比较水,所以将使用下面的方法:以下应该是bootstrap的事件?
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
// 先获取已激活的标签页的名称
var activeTab = $(e.target)[0].hash;
console.log(activeTab);
// 根据标签页名称来决定显示哪个
if(activeTab=="#status_info") {//加载指定图表
show_warning_record_line();
}
if(activeTab=="#week-div") loadWeek();
if(activeTab=="#month-div") loadMonth();
});
这样做就可以达到,可以先获取到 div的宽高,然后再进行echarts的渲染。
当然并不是原创做法,只是给大家整理一下。
原文地址:
http://bbs.csdn.net/topics/391032565 答案是6#
当然官方要是将来发布更完美的版本也是最好的解决方案
相关文章推荐
- 使用Bootstrap tab切换引入echarts图表。第一个tab显示正常,
- echarts在tab切换时容器宽度设置为100%,只展示100px
- Echarts 图表放到bootstrap的tabs中只加载第一个tabs内图表
- echarts切换tab时,第一个图表显示,第二个图表不显示的解决办法
- vue中动态加入ECharts图表时,ECharts宽度自适应/不能100%撑开
- Echarts 图表放到bootstrap的tab-panel中不加载 处理
- 关于使用bootstrap的tab选项卡时无法正常显示echarts图像的解决方案
- Echarts 图表放到bootstrap的tab-panel中不加载
- 解决Echarts使用tab切换时只显示第一个tab中图表,其他tab中图表不显示或显示不全问题
- 关于 flex-direction: column 之后宽度自动变为100%的解决办法
- 解决Bootstrap 标签页(Tab)插件切换echarts不显示问题
- 使用Framelayout+Fragment+tab方式展示首页时,个别fragment有时会出现空白情况的解决
- Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
- ionic开发的app在Android中正常,在iOS中就不正常会出现下来跟着下来的情况
- js-解决echarts在使用tab情况下现实不全的问题
- bootstrap-datetimepicker年视图中endDate设置之后比正常时间提前两个月
- 关于在apache服务器环境下的项目上传nginx环境下页面只有主页正常,其他页面404的一种情况
- 5分钟上手写ECharts的第一个图表
- win7系统在安装了个别软件之后,偶尔会出现部分应用程序图标丢失的情况
- echarts之bootstrap选项卡不能显示其他标签echarts图表