代码改变世界

flash遮挡DIV元素的问题总结

2012-05-16 15:38  臭小子1983  阅读(220)  评论(0编辑  收藏  举报

1、DIV被Silverlight遮挡, 加入windowless参数即可。

<object id=”silverlight” data=”data:application/x-silverlight,” type=”application/x-silverlight-2-b2″ width=”100%” height=”100%” >
<param name=”source” value=”ClientBin/YourSilverlight.xap”/>
<param name=”onerror” value=”onSilverlightError” />
<param name=”background” value=”transparent” />
<param name=”windowless” value=”true” />

 

2、DIV被Flash遮挡,加入<param name="wmode" value="transparent" />

<object width="480" height="400" data="你的flash.swf" 
type="application/x-shockwave-flash">

<param name="wmode" value="transparent" />
<param name="align" value="middle" />
<param name="src" value="你的flash.swf" />
<param name="quality" value="high" />
</object>

解决方法之一:Iframe包裹select元素 


  使用iframe包住select,这样iframe有z-index,只要在div上设置的z-index比iframe的高即可~这种方法有一定的局限性,不可能每个select都要加个iframe吧?所以不推荐!

<iframe style="z-index:1" style="z-index:1"><!-- 用iframe 解决此bug --> 
<select name="country"> 
<option value="1">china</option> 
<option value="2">japanese</option> 
<option value="1">U.S.A</option> 
</select> 
</iframe>

解决方法之二:以Iframe作为div的子元素,覆盖select元素 
建立一个跟div同宽同高的iframe,并且z-index比div要低。这种方法推荐使用:

<style>.T_iframe 
{ 
position: absolute;/*绝对定位保证iframe不会占用流布局空间*/ 
width: 100%; /*100%保证可以覆盖整个div*/ 
height: 100%; 
z-index:-1; /*-1保证iframe显示在div下方*/ 
} 
.T_div 
{ 
position: absolute; 
left:100px; 
top:50px; 
width: 300px; 
height: 200px; 
background : blue; 
z-index:100; 
} </style> 
<div class="T_div"> 
<span>这里可以包含其他dom元素</span> 
<iframe class="T_iframe"></iframe> 
</div>

解决方法之三:使用jQuery的bgiframe插件 
如果你的项目引用了jQuery,那么我推荐使用bgiframe插件来解决select的遮挡div问题,原理很简单,就是建立一个同高同宽的iframe插入到div中去~bgiframe下载地址:http://github.com/brandonaaron/bgiframe,使用方法: 

$('.fix-z-index').bgiframe(); 
参数说明:

top:设置top位置,默认为auto 
left:设置left位置,默认为auto 
width:设置iframe宽度,默认为auto 
height:设置iframe高度,默认为auto 
opacity:设置是否透明,默认为true 
src:设置iframe的src,默认为javascript:false

3、IE6下,DIV被Select控件遮挡