JS特效的兼容性:重叠层和遮挡问题的解决

CSS、JS在不同浏览器的兼容问题,我们已经讨论过很多次,上一篇名为"兼容IE6,IE7和firefox的菜单"的文中提到过菜单对不同浏览器的兼容问题,除了浏览器对css属性标签识别的差异外,还有个实质性的问题,就是菜单和其他div层重叠问题。文中我们最后通过设置不同div层的z-index属性(注意,两个比较的单位必须有一个是absolute属性)解决了此问题。接下来是js图片翻转特效的浏览器兼容问题。

篇文章中提到,使用JS,酷似Flash,效果当然是没得说了,方法也是多种多样。但是一般的JS对Firefox的支持都不是很好,这里的图片翻转同样遇到了这个问题--兼容。

使用的方法在FF下无法显示,而且页面报错,于是呆呆同学给介绍了个在线生成Flash的地址。这个flash的,对FF兼容性不错,好像问题就这样轻易解决了?其实不然。

知道网页布局中,option,flash等控件一般居于最上层,因此就像《你的灯亮着吗?》中的情况,问题继续转换衍生出新的问题,也就是--菜单和其他div层重叠问题--其实也是老问题,又回到了原点。页面元素遮挡住菜单通常有以下几种情况:图片(同IE,FF兼容性问题),Flash(本文中的问题)以及表单控件遮挡。

图片可以用所在div的z-index控制;Flash则需设置Flash的参数<param name="wmode" value="opaque">即可,但是对于Firefox而言,还需要在embed标签中添加wmode="transparent"方可消除遮挡;而表单控件有时可以设置display属性解决,有时就比较复杂了(涉及程序,我很怕呢),感兴趣的可以去这里了解。