iPad Safari上的iframe CSS3缩放问题(iOS 5.0.1)

Att*_*Kun 10 safari iframe scale css3 ipad

我需要扩展iframe以使其更大(我无法控制iframe内容的源代码).我试图通过-webkit-transform: scale(1.3)CSS属性实现它.

iframe的内容是按比例放大的,但是当我尝试触摸iframe中的任何控件时,似乎触摸事件正在错误的位置被接收(我可以看到控件的"阴影"在触摸错误的地方).因此事件处理程序不起作用(我怀疑它们没有被调用,因为在错误的位置检测到触摸).有人遇到过这个问题吗?可以解决吗?

我创建了一个产生问题的测试用例(在iPad Safari中试用):http://jsfiddle.net/9vem2/

源代码更易读:

父页面(iframe的容器):

<!DOCTYPE html>
<html>
<head>
    <title>Parent</title>

    <style type="text/css"> 
        iframe
        {        
            left: 200px;
            -webkit-transform: scale(1.3);
        }
    </style>    
</head>

<body>
    <h2>Parent</h2>
    <iframe src="child.html"></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

子页面(iframe内容):

<!DOCTYPE html>
<html>
<head>
    <title>Child</title>
</head>

<body>
    <h2>Child</h2>
    <input type="text"></input>
    <button onclick="alert('hello');">Button</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Ian*_*unn 3

这感觉像是一个黑客解决方案,但由于它正在修复看似错误的问题,我认为这并不重要。我没有以 2D 方式缩放,而是以 3D 方式将 iframe 移向查看器,请参阅此演示:http://jsfiddle.net/ianlunn/MSUmS/

将其<body>制作成 3D 空间,如下所示:

body {
 -webkit-perspective: 800px;
}
Run Code Online (Sandbox Code Playgroud)

然后 iframe 沿着该 3D 空间中的 Z 轴向查看器移动:

iframe {
    -webkit-transform: translateZ(130px);
}
Run Code Online (Sandbox Code Playgroud)

这可能需要针对实际应用程序进行修改,特别是如果 iframe 包装在<body>.

  • 不幸的是,当我尝试水平放置 iframe 时,这个解决方案会产生与我原来的帖子中相同的问题。我也尝试过设置 margin-left 和 translateX 。 (2认同)