该文章短小精悍
问?视频全屏后如何加弹幕
答:了解一下 screenfull; pointer-events: none;
(如果你没有领会我的意思,我可以手摸手带你撸一遍)
-
视频全屏遇到的问题
最近在搞给视频加个花边的东西用的 Flash,在全屏的时候浏览器会把视频层级提高(H5也有同样的问题),(重点是 Flash 并不草理你的DOM,大家玩玩就懂我的意思了。)导致全屏后通过position定位的花边位于了视频下方,简单的说花边在视频全屏的时候不展示
-
处理问题的过程
最开始用的是非常常规的想法,如何在视频全屏的时候降低视频的层级,使我需要的div块位于视频上方。然后尝试了各种方法,结果被制裁的服服帖帖的,大家可以去搞搞。其实仔细思考我要做的就是类似于弹幕的东西,咦~~B站怎么实现的。
-
别人家的弹幕
B站肯定是拿不到源码的啦,缕他控制台的资源,element,style。人家确实全屏的时候实现了,弹幕
写的DOM结构,和CSS样式并不复杂,全屏无外乎全屏的时候给DOM加了一个样式而已。我也照着试了不行。
WEY?
-
错在了哪里
这个问题如果思路错了就是个死胡同。所以我在找问题的时候趟了很多坑。思路错在我不应该使用视频的全屏,敲黑板!划重点啦!不要使用视频的全屏!(解决了问题的时候才幡然醒悟),然后发现了个贼有意思的东西。[screenfull][3]。不知道B站他们怎么玩的,但是我用这个实现了。这个东西做了一个事情让你浏览器的DOM铺满全屏。欧?~~~
-
实现它
去看我提交的文件
6.pointer-events是啥?弹幕呢?
pointer-events 是一个CSS属性做点透的时候用的,如果你有一个弹幕层在Video上边你会需要到她的。弹幕呢,没有。好多人都已经实现了好不好,这个你还是去问问 [度娘][5] 或者 [必应叔叔][6] 吧。