解决iframe高度自适应「建议收藏」

解决iframe高度自适应「建议收藏」解决iframe高度自适应原因第一种方法第二种方法原因iframe的高度不会随着页面高度的变化而变化,可能会导致页面显示不全,或者页面下方有空白的问题。第一种方法这个方式更适用于嵌套的页面,当嵌套多个iframe时,比如左侧有个侧边栏,右侧是个大的iframe,这个大的iframe又嵌套了一层:中间是iframe,但是右侧又有个侧边栏,这时候不想让iframe单独滑动(避免页面出现两个滚动条),而是想整个页面一起滑动时,用这个方法。html代码:注意一定要写height=‘100%’scrol

解决iframe高度自适应

原因

iframe的高度不会随着页面高度的变化而变化,可能会导致页面显示不全,或者页面下方有空白的问题。

第一种方法

这个方式更适用于嵌套的页面,当嵌套多个iframe时,比如左侧有个侧边栏,右侧是个大的iframe,这个大的iframe又嵌套了一层:中间是iframe,但是右侧又有个侧边栏,这时候不想让iframe单独滑动(避免页面出现两个滚动条),而是想整个页面一起滑动时,用这个方法。

html代码: 注意一定要写height=‘100%’ scrolling=‘no’ width=’100%’
否则iframe会自己滑动

 <div class=" iframe My-home embed-responsive embed-responsive-16by9" id="taskheight">
        <iframe class="embed-responsive-item" frameborder="0" height='100%' id="form-iframe" name="formIframe" scrolling="no" width='100%'></iframe>
 </div>

js代码:

try { 
   
    var timer;
    $("#form-iframe").load(function () { 
   
        if (timer) { 
   
            clearInterval(timer);
        }
        //pre_height用于记录上次检查时body的高度
        //mainheight用于获取本次检查时body的高度,并赋予iframe的高度
        var mainheight, pre_height;
        var frame = $(this);
        timer = setInterval(function () { 
   
            mainheight = $(document.body).height() + 10;
            if (mainheight != pre_height) { 
   
                pre_height = mainheight;
                frame.height(Math.max(mainheight, 350));
            }
        }, 500);//每0.5秒检查一次
    });
} catch (e) { 
   
}

第二种方法

这个方法更简单些,适用于左侧有个侧边栏,右侧是iframe,并且iframe可以自己滑动,只在页面高度变化时重新赋值即可。

html代码:

<div class="iframe My-home embed-responsive embed-responsive-16by9">
     <iframe class="embed-responsive-item" frameborder="0" id="form-iframe" src=""></iframe>
      <!--src是动态赋值的-->
</div>

js代码:

  //根据ID获取iframe对象
    var org = $("#form-iframe")
    org.onload = function () { 
   
        //解决打开高度太高的页面后再打开高度较小页面滚动条不收缩
        org.style.height = '0px';
        var iDoc = org.contentDocument || org.document
        var height = calcPageHeight(iDoc)
        if (height < 850) { 
   
            height = 850;
        }
        org.style(height, height + 'px')
    }

两种方法我都用了,亲测好用!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210442.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 光敏传感器arduino实验_光敏传感器实验报告

    光敏传感器arduino实验_光敏传感器实验报告使用STM32的HAL库,配置多通道ADC,用DMA采集,算数平均值滤波,把GL5528光敏电阻得到的数据,转为光照度Lux,其中有Matlab计算公式与函数拟合,数据处理。

    2022年10月26日
  • MySQL5.7.24安装配置(图文超详细教程)

    MySQL5.7.24安装配置(图文超详细教程)下载MySQL我用的是5.7.24打开下载链接:https://dev.mysql.com/downloads/windows/installer/5.7.html点击Download进行下载弹出页面点击Nothanks进行下载下载下来的文件名是mysql-installer-community-5.7.24.0.msi双击文件名称进行安装如果提示如下错误说明.NET4…

    2022年5月5日
  • 关于Office弹窗+横幅提示“你的许可证不是正版,并且你可能是盗版软件的受害者…”的解决方案——以Office2019为例

    关于Office弹窗+横幅提示“你的许可证不是正版,并且你可能是盗版软件的受害者…”的解决方案——以Office2019为例文章目录遭遇问题未成功解决的错误方法解决方案附录-各个版本Office对应更换密钥Office2019版本Office2016版本Office2013版本遭遇问题        前一段时间,博主电脑的Office2019软件忽然开始在每次打开时弹出“你的许可证不是正版,并且你可能是盗版软件的受害者。使用正版Office,避免干扰并保护你的文件安全。”的弹窗+横幅提示,因为博主要准备答辩暂且搁置了这个问题。直到今天撰写材料

    2022年7月19日
  • pip和conda安装与卸载tensorflow、pycharm中使用特定的conda虚拟环境「建议收藏」

    pip和conda安装与卸载tensorflow、pycharm中使用特定的conda虚拟环境「建议收藏」写吴恩达dp作业做的准备参考https://blog.csdn.net/ccgcccccc/article/details/89058445根据他的配置要求来配置文件pipinstalltensorflow==1.13.0rc2-ihttps://pypi.tuna.tsinghua.edu.cn/simple或者-ihttps://mirrors.aliyun.com/py…

    2022年6月22日
  • miui12免费网络电话没了_小米9电信卡未注册上volte

    miui12免费网络电话没了_小米9电信卡未注册上volteMinaMEIDActivator是由Minacriss开发的新工具。可以激活所有MEID三网的信号恢复,并且支持打电话、短信、4G流量上网。支持iPhone5sX直接所有型号,支持iOS12.5.2iOS14.4.2。MEID三网指:不小心忘记ID密码,而且已经刷机并且是激活锁界面的现在也可解信号。更新日志:2021.5.111,修复错误2,自动屏蔽系统更新、还原手机功能。使用方法:1,对设备进行越狱,使用checkra1n越狱或者U盘越狱工具2,找正规授权经销商对设备序列号进行授权3

    2022年9月2日
  • java 上传文件到服务器_ameqp服务器网址

    java 上传文件到服务器_ameqp服务器网址privateStringsaveImageReturnPath(MultipartFilemultiFile)throwsIllegalStateException,IOException{ StringdateName=PicFileUtil.randomFileName()+multiFile.getOriginalFilename(); …

    2022年9月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号