echarts圖表顯示隱藏 Can't get dom width or height

項目有一個需求,定時顯示隱藏echarts圖標,剛開始dom是display:block;圖表顯示正常。等到dom隱藏再顯示的時候圖表仍是正常,很好沒有bug。
但是當我在dom處於display:none隱藏狀態時去調整瀏覽器的可視區域,dom再顯示的時候問題就來了,echarts顯示不出來了!$-$
報警告Can't get dom width or height瀏覽器

  • 緣由多是echarts讀取不到隱藏dom的高寬。

通常作echarts自適應都會用到 echarts.resize() 。 在可視區域變化時從新調整echarts,這時候若是dom處於隱藏狀態,那麼echarts在resize時就讀取不到節點的寬高,圖表就沒法顯示。echarts

解決辦法

在dom變爲display:block;後,再從新賦予節點寬高和加載圖表,dom

function setpageSize(){
    //取節點寬高
    //加載圖表
}

var _swiper_3d;
_swiper_3d = window.setInterval(function () {
    var map_swiper = document.querySelector(".map_swiper");
    var map_3d_content = document.querySelector(".map_3d_content");

    if (map_swiper.style.display == 'none') {
        map_3d_content.style.display = 'none';
        map_swiper.style.display = 'block';
   
        setpageSize();//
    
    }else if(map_swiper.style.display == 'block') {
        map_swiper.style.display = 'none';
        map_3d_content.style.display = 'block';

    }

},7000);
  • 注意:若是你echarts有用到setInterval來令圖表動態化,這時候還須要清除echarts數據的定時器再引入方法,不然setInterval會疊加,數據愈來愈快。。。
相關文章
相關標籤/搜索