ifram內(nèi)嵌套tab選項(xiàng)卡以及iframe切換的一系列問題

2020-7-14    前端達(dá)人

最近在項(xiàng)目中遇到這樣一個問題

點(diǎn)擊查看原圖

當(dāng)頁面加載完畢后由于選項(xiàng)卡的另外兩張屬于display:none;狀態(tài)  所以另外兩張選項(xiàng)卡內(nèi)echarts的寬高都會變成默認(rèn)100*100


查閱了很多網(wǎng)上的案例,得出一下一些解決方案:

1:

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

解決辦法:

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


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

2:mychart.resize() 重新渲染高度

3: 后來我想到了問題所在,既然高度是因?yàn)閐isplay:none;導(dǎo)致的 那大可不必設(shè)置這個屬性,但是在頁面渲染完畢后加上即可

所以取消了選項(xiàng)卡的display:none; 但在頁面加載完畢后 
window.οnlοad=function(){

根基id在添加css display:none;

}

即可解決,

分割線

--------------------------------------------------------------------- 

接下來解決一下ifram內(nèi)外通訊 互相通訊賦值ifram src 和高度問題 

分享本文至:

日歷

鏈接

個人資料

存檔