我写了一个div,position:absolute,z-index:9999,点击播放器全屏后,还是能挡住我的元素,为什么呢,怎么才能在其之上显示
我写了一个div,position:absolute,z-index:9999,点击播放器全屏后,还是能挡住我的元素,为什么呢,怎么才能在其之上显示
楼主应该指的是 网页中的flash播放器,这个涉及到的浏览器的渲染问题,flash播放器使用的是单独的flash进行进行渲染,渲染出来的其实是一个和浏览器等级一样的window窗口,你可以用spy ++ 抓下,其实就是个窗口,没有的话可以用qq的截图工具试下,你会发现截图工具会自动帮你识别出来那个窗口,这个可以用过设置 object 或者embed标签的 wmode 调整渲染的模式:
2 回答843 阅读✓ 已解决
4 回答919 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答816 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答2.6k 阅读
估计提主是用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控制层级)
object情况
引用
http://www.adobe.com/cn/devnet/flash/articles/concept_window_mode.html