IE-8 iframe и flash-объект игнорируют z-index? - PullRequest
4 голосов
/ 05 июня 2011

У меня есть следующие элементы div, и я пытаюсь сделать слой iframe перед my_flash.Это общая проблема, и я прочитал все решения, которые смог найти, и все же у меня возникают проблемы в 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>

Ответы [ 3 ]

7 голосов
/ 05 июня 2011

К сожалению, z-index не влияет на Flash Player.См. Этот пример: http://demos.learnswfobject.com/html-over-swf/dynamic.html (Связанный учебник )

В приведенном выше примере родительский элемент имеет 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> 
0 голосов
/ 24 августа 2011
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);
0 голосов
/ 05 июня 2011

Вы должны установить параметр wmode объекта Flash при внедрении с SWFObject.

Здесь - это краткое руководство для этого.

Вот модифицированный коддля вашей проблемы:

<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>
...