echarts的图表,如果父级容器的height/width属性设置为百分比的形式,那么echarts就会warning,且不能正常的生成图表。所以div容器的高度宽度必须指定为px,这设计不知道是为啥。
于是自己采用了如下解决方案,直接贴代码了。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1,maximum-scale=1,minimum-scale=1"> <title>echarts.js案例一</title> <script type="text/javascript" src='js/echarts.js'></script> </head> <body> <div id="chart" style="100%;height:400px;"></div> </body> <script type="text/javascript"> var worldMapContainer = document.getElementById('chart'); //用于使chart自适应高度和宽度,通过窗体高宽计算容器高宽 var resizeWorldMapContainer = function () { worldMapContainer.style.width = window.innerWidth + 'px'; worldMapContainer.style.height = window.innerHeight + 'px'; //rem单位 //worldMapContainer.style.width = window.innerWidth/750*690+'px'; //worldMapContainer.style.height = window.innerHeight/750*600+'px'; }; //设置容器高宽 resizeWorldMapContainer(); // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(worldMapContainer); // 指定图表的配置项和数据 var option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data: ['销量'], height: worldMapContainer.style.height, worldMapContainer.style.width }, xAxis: { data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); //用于使chart自适应高度和宽度 window.onresize = function () { //重置容器高宽 resizeWorldMapContainer(); myChart.resize(); }; </script> </html>
此时,worldMapContainer的高宽已经无所谓了,因为我们已经在js中设定了div容器高宽。