ifram内嵌套tab选项卡以及iframe切换的一系列问题

2020-7-14    前端达人

最近在项目中遇到这样一个问题

点击查看原图

当页面加载完毕后由于选项卡的另外两张属于display:none;状态  所以另外两张选项卡内echarts的宽高都会变成默认100*100


查阅了很多网上的案例,得出一下一些解决方案:

1:

原因很简单,在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);

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

3: 后来我想到了问题所在,既然高度是因为display:none;导致的 那大可不必设置这个属性,但是在页面渲染完毕后加上即可

所以取消了选项卡的display:none; 但在页面加载完毕后 
window.οnlοad=function(){

根基id在添加css display:none;

}

即可解决,

分割线

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

接下来解决一下ifram内外通讯 互相通讯赋值ifram src 和高度问题 

分享本文至:

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档