javascript - 怎样让iframe撑开父div的高度?
PHP中文网
PHP中文网 2017-04-11 12:18:30
[JavaScript讨论组]

$("#li1").click(function(){

$("#main-wrap").html("");

}

如上代码,iframe是动态加载进#main-wrap元素的,但是由于iframe中内容的高度不确定,当高度超过 父p #main-wrap现在的高度时,下面 就不显示了。

怎样解决一下?

.

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(6)
高洛峰

监听 iframe 的 事件动态设置高度呢

阿神

泻药, 父元素设置固定高度 然后设置overflow: auto;
iframe 设置height:100%; 这样当iframe高度超过p高度时会出现滚动条
如果需要外部p动态的改变高度以适应iframe高度,目前我想到的方法是内部iframe访问外部window对象的dom动态的设定高度
比如这样

window.parent.document.getElement('#p').style.height = document.documentElement.offsetHeight+'px';
迷茫

谢邀~
楼上的说的很对。我再补充一点,即你对iframe的高度加一个监听事件,如果他的高度,超出父元素的高度,那么你动态的去扩展父元素的高度,扩展的时候,可以采用jquery的animation去完成(在规定的时间内完成一个特效),这样会显得平滑一点,慢慢的张开,不会出现“嗖”的感觉。

天蓬老师

话说你的iframe的高度怎么设定的。

大家讲道理

function changeFrameHeight(){
var ifm= document.getElementById("iframe_content");
ifm.height=document.documentElement.clientHeight;
}
window.onResize=function(){
changeFrameHeight();
}

伊谢尔伦

问题已经解决,问题出在我没有考虑到jq初始化过程的问题。

通过监听iframe内部某个元素的动作,然后用#('idframe的id').contents().height()取出高度,再设置到外层容器上。

这本不复杂,但是由于iframe本身也是在某元素在click的时候动态加载的,我在写高度设置的时候没有考虑到jq初始化的问题,导致明明写好觉得对的东西没有执行,花了不少时间,后来把设置写到click()片段内,就起作用了。

已经解决。谢谢各位

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号