echarts圖表初始大小問題及echarts隨窗口變化自適應


最近在做一個輪播圖,使用的是element的Carousel走馬燈,每一個走馬燈里是eachrts圖,開始頁面加載的時候發現echarts圖並不能自適應,開始以為是走馬燈的問題,后來發現不是

不知道大家在用echarts的時候有沒有遇到這種情況:

最開始盛放圖表的容器是隱藏(或者tab切換)的,然后再顯示的時候,里面echarts圖表就沒用初始大小了。比如我遇到的這種:

有童鞋這會兒估計看出原因了:因為元素最初隱藏,再顯示之后沒有自動變化寬度,所以echarts圖表沒有初始寬高,官方文檔的說法:

請注意:這個寬度在一些情況下設置 百分比 是沒有作用的,所以得設置為具體數字或者用js賦值,類似這種:

$('main').style.width = (document.body.clientWidth-300)*0.6+'px';

P.S:這里沒說高度是因為如果不給容器固定高度,圖表是完成不顯示的(高度為0的容器肯定不會顯示哦)

那么如果想設置echart圖表隨窗口的縮放變化呢?以下兩種寫法都可以:

第一種:

window.onresize = myChart.resize;
// .resize后不用加括號哦,一般如果window resize的時候不設置其他,可以這樣寫

第二種:

window.onresize = function () {
       this.myChart.resize();
       // .resize后加括號哦,這里還可以寫其他的事件
};

echarts官方文檔寫的很詳細哦,需要的童鞋自己去翻閱。

具體到我的代碼,我是這樣實現的,因為我的容器是百分比寫的,所以我的實現方式如下:

即是dom節點渲染以后,調用echarts實例的resize()方法;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM