我发现它不一定是嵌套的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/