HTML5视频:当本地控件重新激活时隐藏自定义控件
当用户重新启用默认浏览器控件时,是否存在HTML5视频(/音频)事件 目前,我在元素上启用了HTML5视频:当本地控件重新激活时隐藏自定义控件,html,video,custom-controls,html5-video,Html,Video,Custom Controls,Html5 Video,当用户重新启用默认浏览器控件时,是否存在HTML5视频(/音频)事件 目前,我在元素上启用了控件属性,然后用javascript将其删除并显示自定义控件。但是,如果用户使用视频上下文菜单并单击“显示控件”以显示默认浏览器控件,该怎么办。我希望能够尊重这一点,并在这种情况下隐藏我的控件(也许他们更喜欢他们习惯的控件) 在切换本机控件时,是否有一种切换控件的好方法 (监视正在添加和删除的控件属性似乎不起作用。重新启用它们会重新添加属性,但再次隐藏控件不会删除属性。--在chrome16中) 编辑:
控件
属性,然后用javascript将其删除并显示自定义控件。但是,如果用户使用视频上下文菜单并单击“显示控件”以显示默认浏览器控件,该怎么办。我希望能够尊重这一点,并在这种情况下隐藏我的控件(也许他们更喜欢他们习惯的控件)
在切换本机控件时,是否有一种切换控件的好方法
(监视正在添加和删除的控件
属性似乎不起作用。重新启用它们会重新添加属性,但再次隐藏控件不会删除属性。--在chrome16中)
编辑:
var v=document.getElementsByTagName('video')[0]代码>
使用隐藏控件(最初和通过关联菜单设置时):
使用上下文菜单显示的本机控件:
v.getAttribute('controls') // '' in Chrome, "true" in FF9 (string)
v.controls // true
由于元素上的属性实际上正在更改,DOMAttrModified可以用于支持的浏览器,是吗?(FF和歌剧)。这是否意味着setInterval
和检查其他控件的v.controls
?我不知道您的用户,但我怀疑这种情况经常发生。所以setInterval可能会为一些很少做的事情增加开销。您可以尝试使用相关事件检查控件,如mousemove
v.addEventListener("mousemove", function(){
customControls.style.display = (v.controls) ? 'none' : 'block';
}, false);
// Or New jQuery
$(v).on('mousemove', function(){ ...same... });
如果您的控件是视频标记后的直接同级控件,则可以使用CSS:
video[controls] + #controls.custom {
display: none;
}
这应该适用于所有支持视频的浏览器
video[controls] + #controls.custom {
display: none;
}