我有以下div,我正在尝试在my_flash前面制作iframe层。 这是一个常见的问题,我已经阅读了所有可以找到的解决方案,但我仍然在IE8中遇到问题。顺便说一下,我正在使用SWFobject。
这是来源:
<script type="text/javascript">
swfobject.embedSWF("index.swf", "my_flash", "100%", "100%", "8.0.0");
swffit.fit("my_flash",900,650);
</script>
<div id="my_flash" style="z-index:1;"></div>
<div style="border:none; overflow:hidden; width:50px; height:21px; z-index:9999; position: absolute; bottom: 5px; left: 110px;" >
<iframe src="http://www.facebook.com/plugins/like.php?blah.html" scrolling="no" frameborder="0" allowTransparency="true" style="z-index:9998"/>
</div>
答案 0 :(得分:7)
不幸的是,z-index不会影响Flash Player。请参阅此示例:http://demos.learnswfobject.com/html-over-swf/dynamic.html(相关tutorial)
在上面链接的示例中,父元素具有position:"relative"
,HTML元素具有position:"absolute"
。 SWF不需要指定position
。没有指定z-index
的元素。 SWF需要将wmode
设置为opaque
或transparent
。 wmode:"opaque"
优先于wmode:"transparent"
,因为transparent
会导致问题并使用比opaque
更多的处理能力。
试试这个:
<style type="text/css">
/* establish relationship with child elements */
#wrapper { position: relative; }
/* this element will automatically appear overtop
of the wmode=opaque SWF without needing z-index */
#myiframe { position: absolute; }
/* No CSS needs to be specified for the SWF */
#myswf { }
</style>
<div id="wrapper">
<iframe id="myiframe" src="mypage.html"></iframe>
<div id="myswf">This will be replaced by SWFObject</div>
</div>
答案 1 :(得分:0)
使用SWFObject嵌入时,应设置Flash对象的wmode参数。
Here是一个简短的教程。
以下是针对您的问题的修改代码:
<script type="text/javascript">
swfobject.embedSWF("index.swf", "my_flash", "100%", "100%", "8.0.0", null, { wmode: "transparent" });
swffit.fit("my_flash",900,650);
</script>
答案 2 :(得分:0)
var flashvars = {};
var params = {};
params.wmode = "transparent";
var attributes = {};
swfobject.embedSWF("index.swf", "my_flash", "100%", "100%", "8.0.0", '/swfobject/expressInstall.swf',
flashvars, params, attributes);