如何在不干扰原生控件的情况下为我的HTML5视频添加点击播放?

16 javascript html5-video

我正在使用以下代码为HTML5视频添加点击播放功能:

$('video').click(function() {
  if ($(this).get(0).paused) {
    $(this).get(0).play();
  }
  else {
    $(this).get(0).pause();
  }
});
Run Code Online (Sandbox Code Playgroud)

它可以正常工作,除了它干扰浏览器的本机控件:也就是说,它会在用户点击暂停/播放按钮时立即捕获,立即反转其选择并使暂停/播放按钮无效.

有没有办法选择在DOM的视频部分,或做不到这一点,办法来捕获点击到控制视频容器的一部分,让我可以忽略/后退的点击播放功能,当用户按下暂停/播放按钮?

Tor*_*ter 18

您可以在捕获click事件的视频顶部添加一个图层.然后在视频播放时隐藏该图层.

(简化)标记:

<div id="container">
    <div id="videocover">&nbsp;</div>
    <video id="myvideo" />
</div>
Run Code Online (Sandbox Code Playgroud)

剧本:

$("#videocover").click(function() {
    var video = $("#myvideo").get(0);
    video.play();

    $(this).css("visibility", "hidden");
    return false;
});

$("#myvideo").bind("pause ended", function() {
    $("#videocover").css("visibility", "visible");
});
Run Code Online (Sandbox Code Playgroud)

CSS:

#container {
    position: relative;
}

/*
    covers the whole container
    the video itself will actually stretch
    the container to the desired size
*/
#videocover {
    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
Run Code Online (Sandbox Code Playgroud)