flash与div层级问题

今天在工作中用到flash,flash工程师没有给接口调用其点击事件,

在js中无法绑定flash的点击事件,应该是flash默认禁掉了DOM的点击,

自己想在flash包裹层上添加一个兄弟节点div#btn来触发点击事件。

布局如下。

HTML:

<div class="giftBtn">
     <div id="flash_wrap"></div>
     <div id="giftBtn"> </div>
</div>

CSS:

.giftBtn{
    position: relative;
    top: 488px;
    left: 50%;
    margin-left: -212px;
    width: 424px;
    height: 86px;
    cursor: pointer;
    #flash_wrap,#giftBtn{
        position: absolute;
        width: 424px;
        height: 86px;
        z-index: 999;
    }
    #giftBtn{
        position: absolute;
        top:0;
        left: 0;
        z-index:1000;
    }
}

在新版本的一些浏览器中,都可以通过JS来获取#giftBtnDOM对象来绑定其点击事件。可是来到IE7/8/9/10中测试时,出现了问题,始终获取不到该DOM对象,只能获取flash包裹层,加上之前所述的flash包裹层点击事件被flash禁掉的问题,在网上找了一些IE浏览器z-index属性的bug后将父级.giftBtn加上z-index:100。可是没有效果。

依然是flash在最上面一层。崩溃……我没有放弃网上的方法,想着每次要用调试工具去判断#giftBtn是否在最上层,避免麻烦就给该div加了一个background-color:red。意外发生了。

这个div竟然在最上层,看不见flash,点击事件也触发了。

加了颜色的CSS:

.giftBtn{
    position: relative;
    top: 488px;
    left: 50%;
    margin-left: -212px;
    width: 424px;
    height: 86px;
    cursor: pointer;
    z-index:100;
    #flash_wrap,#giftBtn{
            position: absolute;
        width: 424px;
        height: 86px;
        z-index: 999;
    }
    #giftBtn{
        position: absolute;
        top:0;
        left: 0;
        z-index:1000;
        background-color: red;
    }
}

我去掉background-color:red之后问题依然在,Google了一下,找到一篇相关文章,说背景颜色的层级问题,没有太看懂,但是脑子里浮现了一个想法,给#giftBtn加background-color:red,然后时期透明度为0.这样就看不见红色了。

最终的CSS:

.giftBtn{
    position: relative;
    top: 488px;
    left: 50%;
    margin-left: -212px;
    width: 424px;
    height: 86px;
    cursor: pointer;
    z-index:100;
    #flash_wrap,#giftBtn{
            position: absolute;
        width: 424px;
        height: 86px;
        z-index: 999;
    }
    #giftBtn{
        position: absolute;
        top:0;
        left: 0;
        z-index:1000;
        .opacity(0);
        background-color: red;
    }
}

PS:我的css样式是用less编写的。

时间: 2024-10-11 00:11:24

flash与div层级问题的相关文章

如何调整Flash与div的相互位置

让flash置于DIV层之下的方法,让flash不挡住飘浮层或下拉菜单,让Flash不档住浮动对象或层的关键参数:wmode=opaque. 方法如下:兰西县璩家摄影 针对IE 在<object></object>内加上参数<param name="wmode" value="opaque" /> 针对FF 在<embed />内加上参数wmode="opaque" 标准的的Flash插入 <

IE和Firefox下flash挡住div层的问题解决方法

1 <object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100%" height="80"> 3 <param name="movie" value="flash地址" /> 4 <param name=&qu

FusionCharts或其它flash的div图层总是浮在最上层的问题

div的图层由div的style中的z-index来决定,z-index是层垂直屏幕的坐标,0最小,越大的话位置越靠上. 由于FusionCharts的图表都放在div中,如果页面还有其他的div,将被FusionCharts的图层挡住.不过设置z-index并不起作用,其他的div仍然被挡住.经过网络上查找,发现原来是这样的: flash的图默认情况下总是位于最上层,参考下面的文档: <param name="WMODE" value="transparent&quo

flash 遮住 div 解决办法

被遮盖的div 下面的代码 <!--列表菜单--> <div id="opreationmenu" style="position: absolute; left: 0px; top: 0px; width: 200px; height: 240px; background: #ffffff; display: none;"> <iframe frameborder='1' style='-moz-opacity: 0; -webkit

Flash挡住DIV的解决方法

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="778" height="80"> <param name="movie&

如何解决div层被flash遮盖的问题

页面构建中的Flash层会遮挡Div的问题,一般通过设置wmode="transparent" 或wmode="window"就可以解决.不过对于Flash视频这个貌似不太凑效. 对于Flash遮挡的问题,首先来了解一些wmode的一些属性值. wmode的5种取值 Window模式 默认情况下的显示模式,在这种模式下 flash player 有自己的窗口句柄,这就意味着 flash 影片是存在于 Windows 中的一个显示实例,并且是在浏览器核心显示窗口之上的

如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作

今天在写一个flash广告代码的时候,因为flash自带的链接,容易被当成弹出广告,所以做了一个div层放到flash上面,这样链接都是a触发的不会被拦截,但发现flash一直处于div层上面,原来flash需要加个参数才可以. 让flash置于DIV层之下的方法,让flash不挡住飘浮层或下拉菜单,让Flash不档住浮动对象或层的关键参数:wmode=opaque. 方法如下: 针对IE 在<object></object>内加上参数<param name="wm

RailsCasts17 Looping Through Flash 使用循环展现flash

有时layout文件中会展示几种flash messages;每种flash在展现前均会判断是否为nil,则均需要花费3行代码,如下: ruby <html> <!-- (head snipped) --> <body> <h1>ASCIIcasts</h1> <% unless flash[:notice].nil? %> <div id="notice"><%= flash[:notice]

IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总

http://www.jb51.net/css/85640.html 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加  任何事情都是有原因的,li边距也不例外.  先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的paddi