首页 > 为什么视频播放器总能至于所有元素之上

为什么视频播放器总能至于所有元素之上

我写了一个div,position:absolute,z-index:9999,点击播放器全屏后,还是能挡住我的元素,为什么呢,怎么才能在其之上显示


估计提主是用flash实现的视频播放吧?

先解答问题,「为什么视频播放器总是在所有元素之上?」

因为 Flash 控件 默认 融合(wmode)模式为 window,即 Flash 控件永远悬浮于其余元素之上。

题外,「如何解决?」

给 flash 所在 embed 标签 添加 wmode属性
设置 融合模式 为 transparent(透明) 或 opaque(层级)

!当flash控件的 wmode 设置为 transparent 时,很大几率会导致性能问题

在 transparent 模式下 flash player会设置舞台(stage)背景为透明,并渲染实际需显示的画面以 rgba模式 交给浏览器渲染(融合其下元素)
导致每次画面变动都是一次 Flash player 与 浏览器之间的交互,于是和 opaque 模式相比 transparent 模式需要占用的资源更多。尤其是在视频播放的情况下!

于是,

不需要对旧版本IE兼容的话推荐设置 wmode="opaque" 即可设置控件加入HTML层级 (即可用HTML渲染顺序以及z-index控制层级)

<embed src="one.swf" wmode="opaque" type="application/x-shockwave-flash">

object情况

<object type="application/x-shockwave-flash">
    <param name="movie" value="one.swf">
    <param name="wmode" value="opaque">
</object> 

引用
http://www.adobe.com/cn/devnet/flash/articles/concept_window_mode.html


说的不是很明确,你指的视频播放器是activeX还是Flash?


你确定你要写的不是z-index:-9999;???!!!!


楼主应该指的是 网页中的flash播放器,这个涉及到的浏览器的渲染问题,flash播放器使用的是单独的flash进行进行渲染,渲染出来的其实是一个和浏览器等级一样的window窗口,你可以用spy ++ 抓下,其实就是个窗口,没有的话可以用qq的截图工具试下,你会发现截图工具会自动帮你识别出来那个窗口,这个可以用过设置 object 或者embed标签的 wmode 调整渲染的模式:

【热门文章】
【热门文章】