【发布时间】:2012-03-21 23:19:34
【问题描述】:
我正在寻找正确的方法来确保动态显示的内容在 ipad / iOS5 上的 iframe 中滚动后可见。
哦,Iframes 和 iPad - 你真是个了不起的老栗子。我知道:
- iPad 将 iframe 扩展到其中内容的完整高度(几乎就像它使用 HTML5 的“seamless”属性一样,但不完全是因为它不从父级继承样式或事件)。奇怪,令许多人烦恼,但确实如此。
-
<iframe height="100%">因此是无用的,因为它的大小取决于其内容而不是容器 -
我需要将我的 iframe 包装在一个 div 中 - 一个 la
<div id="wrapper" style="-webkit-overflow-scrolling:touch;overflow:auto;"> <iframe width="100%" height="100%" src="about"blank"></iframe> </div> 或者引入一些trickery来设置框架的滚动位置(我认为是基于this article中提到的技巧)
我的问题是在 iframe 主体内动态显示的内容(例如 jquery 选项卡、手风琴等)可能会导致浏览器在页面的显示范围内裁剪内容。
例如如果我的“选项卡”大部分位于 iframe 内的可见视口下方,并且我执行两指滚动(或实现单指 scrollTop hack),那么在该内容滚动到视图之后,它的一些内容是以前的未绘制仍然未绘制。再次单击第二个选项卡/返回会使内容看起来好像页面没有绘制屏幕外内容。在此之后,如果我随后向上滚动到页面顶部,则不会在页面开头绘制内容(之前是可见的)。用双指滚动页面向上和向下滚动几次可以解决问题。
我已经阅读了this article,上面说问题已得到解决。但它似乎并没有完全修复;并且仍然无法解决由于您必须将 iframe 包装在 div 中并在该 div 上放置滚动条的问题,桌面浏览器可能显示双滚动条,具体取决于它们如何解释 overflow:auto。
附言我在 iframe 内部和外部都使用 HTML5 样板页面,并具有正确的元视口设置。
【问题讨论】:
-
你有没有找到任何解决方案?在我正在处理的平台上面临同样的问题......
-
我发现尝试使用符合 XHTML1.1 的
-
试试这个:stackoverflow.com/questions/10805301/… 基本上你根本不想滚动 iframe,而是在框架页面内滚动一个包装 div。
-
您可以在这里尝试解决方案stackoverflow.com/a/18699378/768685
标签: javascript ipad iframe scroll