javascript - HTML5 自定义视频控件

标签 javascript css html

我希望替代按钮在点击时播放视频。当我点击按钮时,什么也没有发生。这没有正常的控制,我只是用标准按钮测试这个功能,但我没有得到任何响应。

var func = function(){
var video = document.getElementById('video');
var but = document.getElementById('play-pause');
but.addEventListener("click",function(){
    if (video.paused == true) {
        video.play();
    }else{
        video.pause();
    }
});
}
func();

html

  <div id="vid">
<video id="video" width="420" controls>
<source src="images/tutorialUPLOAD.mp4" type="video/mp4" />
<p> your browser does not support HTML5 video </p>
</video>



<div id="vidctrl">
<button type="button" id="play-pause">click here to start</button>
</div>
</div>

最佳答案

试试这个:- http://jsfiddle.net/adiioo7/zu6pK/light/

HTML:-

<video id="video" width="500" oncontextmenu="return false;">
    <source src="https://f9f9fce4f78470f7e248-0b04ae6868f3b76f0186ae4641e4c043.ssl.cf2.rackcdn.com/VidsToCloud.com-Upload-07-01-2013-104654117---What-is-HTML5--www.savevid.com-.mp4" type="video/mp4">Your browser does not support the video tag.</video>
<div id="Layer"></div>
<input type="range" id="seek-bar" value="0">
<div class="clear"></div>
<img src="http://cdn1.iconfinder.com/data/icons/minimal/22x22/status/audio-volume-high.png">
<input type="range" id="volume-bar" min="0" max="1" step="0.1" value="1">

JS:-

jQuery(function ($) {
    //For adding play pause layer on top on the player
    $("#Layer").css({
        position: "absolute",
        top: $("#video").offset().top,
        left: $("#video").offset().left,
        width: $("#video").outerWidth(),
        height: $("#video").outerHeight()
    });

    //Switching play/pause image on the player
    $("#Layer").on("click", function (e) {

        var myVideo = $("#video")[0];
        if (myVideo.paused) {
            myVideo.play();
            $(this).addClass("pause");
        } else {
            myVideo.pause();
            $(this).removeClass("pause");
        }
    });

    //Toggle behaviour for play/pause 
    $("#video").on("click", function (e) {
        var myVideo = $(this)[0];
        if (myVideo.paused) {
            myVideo.play();
        } else {
            myVideo.pause();
        }
    });

    //Showing/Hiding layer on top of the player
    $("#video").on("mouseenter", function (e) {
        $("#Layer").toggle();
    });

    //Volume bar to control video volume
    $("#volume-bar").on("change", function () {
        var myVideo = $("#video")[0];
        myVideo.volume = $(this).val();
    });

    //Seek bar to sync with the current playing video
    $("#video").on("timeupdate", function () {
        var myVideo = $(this)[0];
        var value = (100 / myVideo.duration) * myVideo.currentTime;
        $("#seek-bar").val(value);
    });

    //Seek bar drag to move the current playing video at the time.
    $("#seek-bar").on("mouseup", function () {
        var myVideo = $("#video")[0];

        var currentTime = $("#seek-bar").val() / (100 / myVideo.duration);
        myVideo.currentTime = currentTime;
    });

    $("#seek-bar").on("mousedown", function () {
        var myVideo = $("#video")[0];
        myVideo.pause();
    });

});

Reference

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

相关文章:

css - toastr js插件和css颜色变化

html - Internet Explorer 忽略 flexbox 容器的宽度

css - 内容 DIV 未将页脚向下推

javascript - 即使 ng-required=false 使用自定义输入指令,也需要设置 Angular Form Validation : $error.

javascript - 为 Google Visualization 插入 Javascript select onchange 函数时遇到问题

javascript - 找不到 Mongoose 模式

javascript join 方法不能与其他方法一起使用

javascript - 以 onsubmit 形式使用 JS 函数返回一个值

css - Compass 1.0 不使用 Flexbox 的所有前缀

html - 水平菜单栏 - UL/LI - 按钮悬停