2020-7-14 前端達(dá)人
最近在項(xiàng)目中遇到這樣一個(gè)問(wèn)題
當(dāng)頁(yè)面加載完畢后由于選項(xiàng)卡的另外兩張屬于display:none;狀態(tài) 所以另外兩張選項(xiàng)卡內(nèi)echarts的寬高都會(huì)變成默認(rèn)100*100
查閱了很多網(wǎng)上的案例,得出一下一些解決方案:
1:
原因很簡(jiǎn)單,在tab頁(yè)中,圖表的父容器div是隱藏的(display:none),圖表在執(zhí)行js初始化的時(shí)候找不到這個(gè)元素,所以自動(dòng)將“100%”轉(zhuǎn)成了“100”,最后計(jì)算出來(lái)的圖表就成了100px
解決辦法:
找一個(gè)在tab頁(yè)的切換操作中不會(huì)隱藏的父容器,把它的寬度的具體值取出后在初始化圖表之前直接賦給圖表
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: 后來(lái)我想到了問(wèn)題所在,既然高度是因?yàn)閐isplay:none;導(dǎo)致的 那大可不必設(shè)置這個(gè)屬性,但是在頁(yè)面渲染完畢后加上即可
所以取消了選項(xiàng)卡的display:none; 但在頁(yè)面加載完畢后
window.οnlοad=function(){
根基id在添加css display:none;
}
即可解決,
分割線
---------------------------------------------------------------------
接下來(lái)解決一下ifram內(nèi)外通訊 互相通訊賦值ifram src 和高度問(wèn)題
藍(lán)藍(lán)設(shè)計(jì)的小編 http://m.ssll180.com