Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5视频:当本地控件重新激活时隐藏自定义控件_Html_Video_Custom Controls_Html5 Video - Fatal编程技术网

HTML5视频:当本地控件重新激活时隐藏自定义控件

HTML5视频:当本地控件重新激活时隐藏自定义控件,html,video,custom-controls,html5-video,Html,Video,Custom Controls,Html5 Video,当用户重新启用默认浏览器控件时,是否存在HTML5视频(/音频)事件 目前,我在元素上启用了控件属性,然后用javascript将其删除并显示自定义控件。但是,如果用户使用视频上下文菜单并单击“显示控件”以显示默认浏览器控件,该怎么办。我希望能够尊重这一点,并在这种情况下隐藏我的控件(也许他们更喜欢他们习惯的控件) 在切换本机控件时,是否有一种切换控件的好方法 (监视正在添加和删除的控件属性似乎不起作用。重新启用它们会重新添加属性,但再次隐藏控件不会删除属性。--在chrome16中) 编辑:

当用户重新启用默认浏览器控件时,是否存在HTML5视频(/音频)事件

目前,我在元素上启用了
控件
属性,然后用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;
}