html - 无法让 iFrame 在 iPhone、iPad 和 BlackBerry 的屏幕上滚动

标签 html css mobile iframe

我正在构建一个页面,其中有两个 div。一个 div 用作标题,另一个 div 包含一个 iFrame。

目前,我有一些 JQuery 和 CSS 一起工作,以便根据正在查看的窗口的大小调整 iFrame 的大小。我已经完成了一些初步测试,它适用于 Firefox、Safari、Chrome、IE 9 和 Android 2.3 上的默认/标准浏览器。

但是,当我尝试在 iPad、iPhone 或 BlackBerry 上查看页面时,iFrame 似乎正在调整大小,但您无法滚动整个 iFrame 页面。你基本上被卡住了。但是在 Android 手机上,我可以向下滚动页面,这很奇怪。

这是我使用的 CSS 代码:

#header {
    float: left;
    width:100%;
    height:75px;
    background: #21a5d3; /* Old browsers */
}

#portal {
    position: fixed;
    top: 75px;
    left: 0px;
    width: 100%;
    bottom: 0px;
    min-width: 100%;
}

iframe#iframeclass { width: 100%; height:100% }

这是 HTML:

<div id="header">

</div>
<div id="portal">
    <iframe src="http://www.bbc.co.uk/" id="iframeclass" frameborder="0"></iframe>
</div>

这是我正在使用的 JQuery:

<script>
    var widthRatio = $('#portal').width() / $(window).width();
    $(window).resize(function() {
        $('#portal').css({width: $(window).width() * widthRatio});
    }); 
</script>

最佳答案

经过多次谷歌搜索和反复试验,我设法避开(而不是修复)这个问题。

我基本上删除了 JQuery 代码,当在任何浏览器中加载时,这些代码会为我提供完美的窗口大小。我将 #portal 代码更改为以下内容:

#portal {
    position: absolute;
    top: 75px;
    left: 0px;
    height:92%;
    width:100%;
    bottom: 0px;
    min-width: 100%;
    -webkit-overflow-scrolling:touch;
}

我不知道 -webkit-overflow-scrolling:touch; 代码是否真的做了任何事情,但我已经被它砍掉了我真的不在乎它是否做了现在与否。

这是 Apple 自 2011 年以来就知道的问题,但继续进一步中断对此问题的支持(而不是修复它)。真是个笑话。

关于html - 无法让 iFrame 在 iPhone、iPad 和 BlackBerry 的屏幕上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803388/

相关文章:

jquery - 从左边而不是右边剪切图片的宽度

javascript - 单击时更改所有按钮的颜色

html - 打印 asp.net、javascript 后更改表格的字体大小和列宽

html - 在移动设备中隐藏水平滚动条

javascript - 在另一个页面上启用按钮

javascript - 我克隆 html 节点的方法不起作用

javascript - 如何使 javascript div 在加载时打开但在单击另一个 div 链接时隐藏?

HTML/CSS 多列

css - 链接内的文本图像替换

javascript - 如何使页面适合移动设备上的屏幕宽度?