javascript - 页面上任意数量视频的 HTML5 视频自定义控件

标签 javascript html video controls

friend 们!

我需要一个简单的文本按钮——“播放”。如果正在播放视频,它应该是隐藏的,当视频结束时应该是可见的。一切正常,但只有当我在页面上有一个具有唯一 ID 的视频时它才有效。

HTML:

<video id="main-video" width="640" height="480">
    <source src="media//mp4/video.mp4" type="video/mp4">
</video>
<span id="custom-play-button">Play</span>

这是 JS:

window.onload = function() {
    var video = document.getElementById("main-video");
    var playButton = document.getElementById("custom-play-button");
    playButton.addEventListener("click", function() {
        document.getElementById('main-video').addEventListener('ended',myHandler,false);
            video.play();
            playButton.style.visibility = "hidden";
            function myHandler(e) {
                playButton.style.visibility = "visible";
            }
        });
    }

但是如果页面上会有4,5,6...100个视频(而且会有)怎么办?我无法处理 100 个唯一 ID...

最佳答案

您可以将每个视频和按钮放在父 div 标签中,如下所示。

<div class="video-container">
    <video id="main-video" width="640" height="480">
        <source src="media//mp4/video.mp4" type="video/mp4">
    </video>
    <span id="custom-play-button">Play</span>
</div>

我正在使用 jQuery 代码,您可以轻松地将其转换为纯 JS。 这应该有效。

$(".video-container").each(function () {
    var video = $(this).find("video");
    var plainVideo = video.get(0);/*DOM video object, unwrapped from jQuery*/
    var playBtn = $(this).find("span");

    playBtn.click(function () {
        video.get(0).addEventListener('ended',myHandler,false);
        plainVideo.play();
        playBtn.css("visibility", "hidden");

        function myHandler(e) {
            playBtn.css("visibility", "visible");
        }
    });
});

至少这会让您对解决此问题的方法有所了解。

关于javascript - 页面上任意数量视频的 HTML5 视频自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645217/

相关文章:

python - 如何合并两个视频?

javascript - 在表单提交时执行ajax请求,不等待响应

javascript - 如何使用 lodash intersectionWith 在两个结构不同的数组中比较和查找具有相同值的相同属性?

html - 在 bootstrap 4 中对齐列

javascript - 如何在 jquery 中检查 "IF any one or all buttons are clicked"

algorithm - 使用什么算法/方法来同步多个视频播放器

javascript - 是否可以在 LinkedIn 的 API 中搜索个人或公司?

php - 纯 html 中的 Facebook/Twitter "Like"按钮

html - 将微调器置于按钮中心

iphone - 如何将视频添加到iphone模拟器