穿透插件

还有一种插件在大部分情况下他不需要进行页面交互,此时它附着在 video 层上方,行为与透明插件无异。但某种情况下,他具有一定的交互能力。如弹幕和送礼。

为了方便开发者开发此类插件,我们增加了穿透属性 penetrate 。当一个插件为穿透插件时,所有冒泡到其外层的事件都会视为发生在 video 元素本身的事件,从而作相应的转发。

例如,当一个穿透元素被点击时,如果元素内部没有组织点击事件冒泡,则视为点击在 video 元素上。

因为该特殊属性,在播放器中,会认为穿透插件是原生 video 的一部分。常见的 mouseenter事件,当鼠标移入穿透插件时,会认为移入 video 中, 从而广播 mouseenter 事件。若果时从穿透插件移入 video 中,穿透插件的 mouseleave 事件和 video 元素的 mounter 均不会被广播。

因为穿透插件的特殊性, penetrate 只允许开发者主动声明,且不允许更改。

  • penetrate 为 true 则为穿透插件
  • penetrate 为 false 则为普通插件。
  • 默认为 false