// 功能:

// 1.视频的播放与暂停(图标变化)

// 2.总时间的显示

// 3.当前时间的显示(进度)

// 4.进度条的显示

// 5.跳跃播放

// 6.全屏

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>自定义视频播放器</title>
  <!-- 所有的库一定都在当前页面的css的前面 -->
  <link rel="stylesheet" href="./css/font-awesome.min.css">
  <!-- <link rel="stylesheet" href="./css/font-awesome.css"> -->
  <link rel="stylesheet" href="./css/main.css">
</head>
<body>
  <div class="player">
    <!-- 视频 -->
    <video src="./movie/movie02.mp4" width="100%" height="100%">
      <!-- <source src="./movie//movie02.mp4"> -->
    </video>
    <!-- 控制菜单 -->
    <div class="controls">
      <!-- 播放按钮 -->
      <a href="javascript:;" class="play-btn fa fa-play-circle-o"></a>
      <!-- 进度条 -->
      <div class="progress">
        <div class="progress-bar" style="width: 0%"></div>
      </div>
      <!-- 播放时间 -->
      <div class="time">
        <span class="current">00:00:00</span>/
        <span class="total">00:00:00</span>
      </div>
      <!-- 全屏按钮 -->
      <a href="javascript:;" class="fullscreen fa fa-expand"></a>
    </div>
  </div>
  <script>
    // 功能:
    // 1.视频的播放与暂停(图标变化)
    // 2.总时间的显示
    // 3.当前时间的显示(进度)
    // 4.进度条的显示
    // 5.跳跃播放
    // 6.全屏
    // 下面开始实现功能:



    // 1.视频的播放与暂停(图标变化)
    // 获取视频以及按钮
    var video=document.querySelector("video");
    var btn=document.querySelector(".play-btn");
    btn.addEventListener("click",function(){
      // 判断视频状态并改变按钮
      if(video.paused){
        video.play();
        // this.classList.toggle("fa-pause-circle-o");
        this.classList.remove("fa-play-circle-o");
        this.classList.add("fa-pause-circle-o");

      }else{
        video.pause();
        this.classList.remove("fa-pause-circle-o");
        this.classList.add("fa-play-circle-o");
      }
    });
    // 2.总时间的显示
    // 获取总时间的按钮
    var total=document.querySelector(".total");
    video.oncanplay=function(){
      var h=Math.floor(video.duration/3600);
      var m=Math.floor(video.duration/60-(h*60));
      var s=Math.floor(video.duration%60);
      h=h<10?'0'+h:h;
      m=m<10?'0'+m:m;
      s=s<10?'0'+s:s;
      total.innerHTML=h+':'+m+':'+s;
    }
    // 获取当前时间
    var current=document.querySelector(".current");
    // 获取进度条
    var progressBar = document.querySelector(".progress-bar");
    video.ontimeupdate=function(){
      var h=Math.floor(video.currentTime/3600);
      var m=Math.floor(video.currentTime/60-(h*60));
      var s=Math.floor(video.currentTime%60);
      h=h<10?'0'+h:h;
      m=m<10?'0'+m:m;
      s=s<10?'0'+s:s;
      current.innerHTML=h+':'+m+':'+s;
        // 计算公式 进度条的长度 = 当前时间 / 总时间 * 100 + '%'
        progressBar.style.width = video.currentTime / video.duration * 100 + '%';
    }
    //跳跃播放
    // 获取进度条
    var progress=document.querySelector(".progress");
    progress.addEventListener("click",function(event){
        var clickX=event.offsetX;
        var width=this.offsetWidth
       video.currentTime = clickX / width * video.duration;
    });
    // 全屏
    // 获取按钮
    var fullscreen = document.querySelector(".fullscreen");
    fullscreen.onclick = function () {
    // 请求全屏
      video.webkitRequestFullScreen();
      
    }

  </script>
</body>
</html>

一个自定义的html5视频播放器的更多相关文章

  1. 使用HTML5做的导航条详细步骤

    这篇文章主要介绍了用HTML5做的导航条详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 详解HTML5中的picture元素响应式处理图片

    这篇文章主要介绍了详解HTML5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. html5利用canvas实现颜色容差抠图功能

    这篇文章主要介绍了html5利用canvas实现颜色容差抠图功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  4. HTML5拖拽功能实现的拼图游戏

    本文通过实例代码给大家介绍了HTML5拖拽功能实现的拼图游戏,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

  5. HTML5实现直播间评论滚动效果的代码

    这篇文章主要介绍了HTML5实现直播间评论滚动效果的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. 使用Html5多媒体实现微信语音功能

    这篇文章主要介绍了使用Html5多媒体实现微信语音功能,需要的朋友可以参考下

  7. HTML5 播放 RTSP 视频的实例代码

    目前大多数网络摄像头都是通过 RTSP 协议传输视频流的,但是 HTML 并不标准支持 RTSP 流。本文重点给大家介绍HTML5 播放 RTSP 视频的实例代码,需要的朋友参考下吧

  8. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. HTML5自定义视频播放器源码

    这篇文章主要介绍了HTML5自定义视频播放器源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  10. HTML5新增form控件和表单属性实例代码详解

    这篇文章主要介绍了HTML5新增form控件和表单属性实例代码详解,需要的朋友可以参考下

随机推荐

  1. 微信小程序canvas实现水平、垂直居中效果

    这篇文章主要介绍了小程序中canvas实现水平、垂直居中效果,本文图文实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 使用HTML5做的导航条详细步骤

    这篇文章主要介绍了用HTML5做的导航条详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. H5最强接口之canvas实现动态图形功能

    这篇文章主要介绍了H5最强接口之canvas实现动态图形功能,需要的朋友可以参考下

  4. Canvas高级路径操作之拖拽对象的实现

    这篇文章主要介绍了Canvas高级路径操作之拖拽对象的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. html5视频自动横过来自适应页面且点击播放功能的实现

    这篇文章主要介绍了h5视频自动横过来自适应页面且点击播放,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. 详解HTML5中的picture元素响应式处理图片

    这篇文章主要介绍了详解HTML5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. canvas像素点操作之视频绿幕抠图

    这篇文章主要介绍了canvas像素点操作之视频绿幕抠图的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. html5利用canvas实现颜色容差抠图功能

    这篇文章主要介绍了html5利用canvas实现颜色容差抠图功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  9. canvas绘制视频封面的方法

    这篇文章主要介绍了canvas绘制视频封面的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. HTML5拖拽功能实现的拼图游戏

    本文通过实例代码给大家介绍了HTML5拖拽功能实现的拼图游戏,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

返回
顶部