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="width: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, width: 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容器高寬。