我发现它不一定是嵌套的IFRAME,所以对其进行了更新,而只是在IFRAMEd文档中存在Flash,会破坏position:fixed(也在IFRAME中)。

这是不真实的。在Safari(Mac)上:



...在IFRAME(例如,模式窗口,Fancybox等)中
...也会在该IFRAME中“破坏”任何“ position:fixed”元素。


这是一个完美的示例:http://jsfiddle.net/6GP2A/注意,我们有:


包含Flash(YouTube视频)的IFRAME。
在另一个IFRAMEd文档中(jsfiddle将IFRAMEs作为结果)


请注意,视频本身就是IFRAMEd,这是一个红色鲱鱼。如果Flash只是带有IFRAME的OBJECT标签,则您将遇到相同的问题。

如果您在Chrome中打开它,它将按预期运行。灰色的“你好,我固定” DIV(位置:固定)将固定在底部。

在Safari中,滚动页面时,灰色的DIV将滑动。

啊!有什么建议吗?无数次搜索无济于事。谢谢!

最佳答案

我遇到了同样的问题,但是我们不能拒绝相框。
所以我调查了这个问题,发现了一些解决方案(我想):

如果在必要的框架中有一个带有嵌套Flash的div,并且div的样式为“ position:relative; z-index:-1;”那么框架中带有“ position:fixed”的元素看起来很好。

例如

<html>
<head>
    <style>
       .menu {
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 40px;
       }
       .footer {
          width: 100%;
          height: 40px;
          position: fixed;
          bottom: 0;
          left: 0;
       }
    </style>
</head>
<body>
    <frameset rows="20,*">
        <frame>...</frame>
        <frame>
            <div class="menu">Header</div>
            <!-- Some content here -->
            <object width="440px" height="220px">
                <param value="opaque" name="wmode">
                <param value="http://youdomain.com/you_flash.swf" name="movie">
                <embed width="440px" height="220px" type="application/x-shockwave-flash" src="http://youdomain.com/you_flash.swf">
            </object>
            <!-- Some content here -->
            <div style="position: relative; z-index:-1;">
                <object width="10px" height="10px">
                    <param value="opaque" name="wmode">
                    <param value="http://youdomain.com/fake_flash.swf" name="movie">
                    <embed width="10px" height="10px" type="application/x-shockwave-flash" src="http://youdomain.com/fake_flash.swf">
                </object>
            </div>
            <div class="menu">Footer</div>
        </frame>
    </frameset>
</body>
</html>


一个带闪光灯的div就足够了。所有其他可能保持原样。

备注-您将无法在此div中点击Flash。我编写了一个脚本,该脚本可以将带有空闪存的div动态添加到Mac上的Safari。

希望这会有所帮助。

愿原力与你同在。

关于html - 在Safari上,IFRAME中的Flash会中断位置:固定元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7841731/

10-09 23:49
查看更多