7.30日音讯,flash动画在网页最顶层的解决方法。在网页制作的时候经常会出现一些关于flash层的问题,如本想设置某个层在最上面,z-index也设为很大的了,但还是被网页中的flash的遮住了,与是查找相关资料得知Flash默认总是会显示在页面的最顶层,也就是说如果页面上存在一些DHTMLLayer,那么这些层将会被Flash盖住。即使设置了z-index属性也无济于事。Adobe的技术知识库里提供了解决的办法:FlashcontentdisplaysontopofallDHTMLlayers。
参数针对IE:给<object>标签增加wmode
<paramname="wmode"value="transparent">
针对FIREFOX给<embed>标签也增加类似参数
wmode="transparent"
<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"width="756"height="200"
accesskey="1"tabindex="2"title="
邯郸网站建设">
<paramname="movie"value="*.swf"/>
<paramname="quality"value="high"/>
<paramname="wmode"value="transparent">
</object>
下面对上面的代码进行详细的解析:
flash插入网页中,如果和其他元素有重叠,无论我们如何设置z-index,Flash都会浮动在其他元素之上。这是为什么呢?
1、其实与z-index无关,浏览器解析页面时,会先判断元素的类型,如果是窗口类型的,会优先于非窗口类型的元素,显示在页面最顶端,如果同属于非窗口类型的,才回去判断z-index的大小。
2、Flash嵌入网页中,有个wmode属性,用于指定窗口模式,其值有window窗口、opaque非窗口不透明、transparent非窗口透明三种。其中window表
示Flash以窗口形式显示,opaque和transparent表示Flash以非窗口的形式显示,如果不显示这是wmode属性,默认的wmode的值为window。无论我们如
何设置z-index也不会有效果。解决的办法就是这事wmode属性为opaque或transparent。因为Flash在ie和ff下是用不同的标签嵌入的(ie下一boject标签嵌入,firefox下embed标签嵌入)所以我们需要对两种标签记性设置.
通过代码的相关的解析,相信大家应该能够很好的理解为什么flash插入网页中,如果和其他元素有重叠,无论我们如何设置z-index,Flash都会浮动在其他元素之上呢!同时也会使用本文章中给出的方法很好的解决这个问题。