项目场景:
提示:这里简述项目相关背景:最近在做一个统计报表的项目,需要插入ECharts 图表和表格做统计,并且可以导出Excel 表格。
问题描述:
提示:这里描述项目中遇到的问题:
在开发过程中,碰到了一个,echarts 图在切换到 tab ,然后导出页面的数据,在初始化echarts图,宽度变窄的问题。
原因分析:
提示:这里填写问题的分析:
通过调试代码发现,每次导出excel 表格后,返回初始的页面,echarts 图的宽度区的都是默认的宽度,而不是我自己设置的宽度,导致切换回来的时候,图表变窄。
解决方案:
提示:这里填写该问题的具体解决方案:
在网上搜索了集中方法试了下:
1、隐藏div下无法获取到div的宽高,点击切换标签初始化echarts,可以实现自适应,但是不改变窗体大小时,echarts图表宽度很窄,如图3,方法:手动调用 echartsInstance.resize() 调整尺寸 官方文档:链接
手动调用:
var shsfECharts = echarts.init(document.getElementById('shsfECharts'));```
shsfECharts.resize();
宽高自适应:
//ecahrts 自适应
window.onresize = function () {
shsfECharts.resize();
}
2、在页面切换来的时候,给你的echarts 图 设置一个固定的宽度
var w = $(window).width()
$("#shsfECharts ").css({ "width": $("#shsfECharts ").width(w - 100), "height": "300px" });
//这里我减了100像素的宽度,因为溢出100个像素,高度分给300像素足以。
注意:使用刚指定的配置项和数据显示图表。
function setOptionsLineECharts(xAxis,shzfValue,swdtfsValue) {
省略 option
// 使用刚指定的配置项和数据显示图表。
shsfECharts.hideLoading();
shsfECharts.setOption(option);
shsfECharts.resize(); // 一定要加
}```
#问题解决,此处我用的是第一种方法