这个主题几乎说明了一切。我有一个关闭控件的 Video.js 实例(也就是标记中没有“控件”)。它工作得很好,但是当我暂停视频时(使用我的外部自定义按钮和 myPlayer.pause() 视频上的控件会淡入。当我点击播放时,它们会再次淡出。
这绝对不是它应该工作的方式。有谁知道这是一个错误,还是我只是错过了一些东西?
这个主题几乎说明了一切。我有一个关闭控件的 Video.js 实例(也就是标记中没有“控件”)。它工作得很好,但是当我暂停视频时(使用我的外部自定义按钮和 myPlayer.pause() 视频上的控件会淡入。当我点击播放时,它们会再次淡出。
这绝对不是它应该工作的方式。有谁知道这是一个错误,还是我只是错过了一些东西?
ctangney 的答案仅在使用未压缩(开发)版本的 videojs 时有效,因为一旦压缩,lockShowing 方法就会被重命名(因此 player() 也是如此)。希望他对问题 556的合并请求将很快被接受。
当在 pause() 上调用 lockShowing 时,它会将类添加vjs-lock-showing
到具有 css: 的控件元素中display: block !important
。这导致display:none
由 disable() 方法添加的内联样式被击败。这是解决 CSS 特异性问题的解决方法,并适用于压缩和未压缩的 videojs:
var v = videojs("video", {});
if(!v.controls()) {
v.controlBar.el().className = v.controlBar.el().className + ' vjs-controls-disabled';
}
然后添加到 css 文件的底部:
.vjs-controls-disabled {display: none !important;}
(或者你可以删除!important
from .vjs-lock-showing
)
这是一个已确认的错误。我在那里看到了一个提议的修复,但目前它仍然是一个开放的拉取请求。同时,您可以通过覆盖 ControlBar 的 lockShowing 方法来解决此问题。
var vid = videojs("video", {});
if (!vid.player().controls()) {
vid.controlBar.lockShowing = function(){};
}
...因为(当前)控制栏将侦听器附加到“暂停”事件并调用 lockShowing()。