關於echarts圖表在tab頁中width:100%失效的問題

全菜程式設計師發表於2018-07-05

在使用echarts時,寫在tab頁中的圖表寬度明明設成了100%,但是在頁面上實際卻只有100px寬

<div id="chartMain" style="width:100%;height:300px"></div>

原因很簡單,在tab頁中,圖表的父容器div是隱藏的(display:none),圖表在執行js初始化的時候找不到這個元素,所以自動將“100%”轉成了“100”,最後計算出來的圖表就成了100px

解決辦法:

  找一個在tab頁的切換操作中不會隱藏的父容器,把它的寬度的具體值取出後在初始化圖表之前直接賦給圖表

1 $("#chartMain").css(`width`,$("#TabContent").width());//獲取父容器的寬度具體數值直接賦值給圖表以達到寬度100%的效果
2 var Chart = echarts.init(document.getElementById(`chartMain`));
3 
4 // 指定圖表的配置項和資料
5 option = { ...配置項和資料 };
6 
7 // 使用剛指定的配置項和資料顯示圖表。
8 Chart.setOption(option);

 

相關文章