Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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
Javascript 用于输入设备的HTML5视频焦点_Javascript_Html_Video - Fatal编程技术网

Javascript 用于输入设备的HTML5视频焦点

Javascript 用于输入设备的HTML5视频焦点,javascript,html,video,Javascript,Html,Video,我有一个包含多个HTML5视频的页面。我想利用键盘和鼠标事件与每个视频进行交互。在Flash中,这不是问题,因为一旦单击视频对象,该视频将获得焦点并接收来自任何输入设备的所有事件,除非单击退出。我对HTML5视频还是新手,但我不确定如何用javascript模仿HTML5视频中的focus功能,因为视频标签中不存在focus,没有它就无法控制单个视频 非常感谢 您是否尝试过: <video id="foo"> </video> <script> docu

我有一个包含多个HTML5视频的页面。我想利用键盘和鼠标事件与每个视频进行交互。在Flash中,这不是问题,因为一旦单击视频对象,该视频将获得焦点并接收来自任何输入设备的所有事件,除非单击退出。我对HTML5视频还是新手,但我不确定如何用javascript模仿HTML5视频中的
focus
功能,因为视频标签中不存在
focus
,没有它就无法控制单个视频

非常感谢

您是否尝试过:

<video id="foo">
</video>

<script>
  document.getElementById('foo').focus();
</script>

document.getElementById('foo').focus();

focus方法为元素提供键盘焦点。

我找到了一种方法,通过使用全局变量为视频元素伪造
焦点。例:

    $(function(){
        var focused_vid;
        $('video').click(function(){ focused_vid = this });
        $(document).keydown(function(e){ 
            if (focused_vid){
                var skip_step = focused_vid.duration*.01;

                switch(e.which){
                    case 37: // Back arrow
                        focused_vid.currentTime -= skip_step;
                        break;

                    case 39: // Forward arrow
                        focused_vid.currentTime += skip_step;
                        break;
                }
            }
        });
    });

实际上,如果将选项卡索引设置为数字值,则会:

<video tab-index='-1' />


你能举一个例子,说明你希望在这种互动中采取什么样的行动,以及什么样的键盘或鼠标连在一起吗?@user156629我认为这不重要,因为问题的核心是检查在一页多个视频中接收特定视频焦点的能力,不包括附加到对象的事件。但是如果您坚持,请使用箭头键在视频中滚动。我尝试过这样做:
$('video')。单击(function(){$(this.focus();})。按键(function(e){console.log(e.which);})