iframe中的modal动态为页面添加元素后页面无法滚动
来源:互联网 发布:珍珠控台软件 编辑:程序博客网 时间:2024/06/05 03:48
代码大致结构
<body><iframe id="mainFrame" style="width:100%;height:100%;"><div id="content"></div><button>打开模态框在content中添加元素</button><div id="addElementWindow" ...bootstrap模态框代码略...></div></iframe></body>
当为id为content的div内添加元素,且div的高度超过iframe的高度后,发现iframe无法滚动了!试了下firefox正常,safari、chrome异常,这是什么bug。。。
后来发现,只要拖动下窗口,让iframe的高度出现变化,就再次能够滚动了。
不得已,只好在模态框隐藏的时候强制修改iframe的高度:
$("#addElementWindow").on("hidden.bs.modal", function () {var mainFrame = $("#mainFrame");var height = mainFrame.height();mainFrame.css("height",height+1+"px"); // 代码1mainFrame.css("height",height+"px");// 代码2})看似没问题,执行起来居然没效果,我试着去掉代码2,高度加1像素后不复原,chrome生效了。这太诡异了,代码1+2速度太快了浏览器渲染跟不上了?
但是不能每增加一次空间,就给iframe加一个像素高度吧?于是可以在打开模态框的时候+1像素,关闭的时候-1像素,但是觉得这样导致页面抖动,不太好,于是用了animate凑合了:
$("#addElementWindow").on("hidden.bs.modal", function () {var mainFrame = $("#mainFrame");var height = mainFrame.height();mainFrame.animate({height:height+1},1); mainFrame.animate({height:height},1);})
如果有朋友知道这个bug和更好的解决方法,跪求~
0 0
- iframe中的modal动态为页面添加元素后页面无法滚动
- 为页面添加滚动条
- 动态添加页面元素事件
- iframe刷新后,父页面获取子页面的元素
- jquery获取iframe页面中的元素
- 在当前页面获取iframe中的元素
- 获取页面中子iframe中的元素
- Iframe页面的滚动
- JQuery iframe页面操作父页面中的元素与方法 .
- 父页面取子页面iframe中的元素
- jquery 父页面取得iframe子页面中的元素
- 如何为页面动态生成的元素添加事件(如append()动态添加的标签)
- 页面滚动时,动态添加css动画
- html页面中运用CSS为层(div)元素添加滚动条
- html页面中运用CSS为层(div)元素添加滚动条
- asp.net动态添加页面元素
- 页面元素滚动条
- 如何控制iframe页面滚动?
- mr配置es
- 大型网站架构演化(三)——使用缓存改善网站性能
- ubuntu安装composer
- Web开发之JS事件
- C# 下利用代码创建按钮、定时器和标签
- iframe中的modal动态为页面添加元素后页面无法滚动
- git版本库创建三部曲(git权威指南笔记)
- 计算字符串中某一个字符的个数
- SpringMVC 对多视图的支持
- H.264编码原理I/B/P帧
- CalendarListview中自定义属性的翻译
- kruskal-边的贪心(并查集优化)-3
- RelativeLayout或FrameLayout点击事件穿透
- php环境配置基础版