【问题标题】:HTML overlay on Flash in IE 10+IE 10+ 中 Flash 上的 HTML 覆盖
【发布时间】:2013-08-15 16:18:56
【问题描述】:

在将 DIV 中的文本覆盖在 Flash 对象之上时,我遇到了一个奇怪的问题。我知道 WMODE 参数是 IE 9 及以下版本的关键,我能够使用此代码使其在 FF、Safari、IE 8 和 9 等中正常工作(我没有使用 z-index 或任何东西在我的 CSS 中,只是绝对定位):

<!--[if IE]>
<object width="960" height="280" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
   <param name="movie" value="/assets/flash.swf">
   <param name="wmode" value="opaque">
<![endif]-->

<!--[if !IE]>-->
<object width="960" height="280"
        data="/assets/flash.swf"
        type="application/x-shockwave-flash">
<!--<![endif]-->
    <img src="image.jpg" />
</object>
<div class="copy-left" >
    <h2 style="color:#FFFFFF">Title</h2>
    <p style="color:#FFFFFF">Text 2</p>
</div>

但出于某种原因,在 IE 10 和 11 中,div 出现在 Flash 影片的后面,而不是在它的顶部...好像 WMODE 根本不重要,对象仍然希望出现在所有东西的顶部.

我很感激任何想法,我很难过。

【问题讨论】:

  • 正如我所说,添加 wmode 参数在 IE 10 或 11 中不起作用。我是否通过 PHP、JavaScript 或 HTML 添加参数都没关系...只是没有得到识别或不再是 IE 10 及更高版本中的解决方案。所以我在这里看到的其他解决方案都不起作用。
  • 哦,等等,我傻了,IE10 不尊重条件 cmets。你的 &lt;object&gt;&lt;param&gt; 东西没有被使用。
  • 啊,谢谢!我没有意识到这一点。将&lt;param name="wmode" value="opaque"&gt; 添加到另一个对象似乎正在工作。

标签: flash internet-explorer overlay


【解决方案1】:

原来 IE 10+ 不关注条件 cmets,所以 wmode 被忽略了。

我通过将&lt;param name="wmode" value="opaque"&gt; 添加到两个对象来修复它,无论它们是否是 IE。最后的代码是这样的:

<!--[if IE]>
<object width="960" height="280" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
   <param name="movie" value="/assets/flash.swf">
   <param name="wmode" value="opaque">
<![endif]-->

<!--[if !IE]>-->
<object width="960" height="280"
        data="/assets/flash.swf"
        type="application/x-shockwave-flash">
        <param name="wmode" value="opaque">
<!--<![endif]-->
    <img src="image.jpg" />
</object>
<div class="copy-left" >
    <h2 style="color:#FFFFFF">Title</h2>
    <p style="color:#FFFFFF">Text 2</p>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2010-10-21
    相关资源
    最近更新 更多