js实现音频控制进度条功能


Posted in Javascript onApril 01, 2017

效果图:

js实现音频控制进度条功能

代码如下:

<!doctype html>
<html>
<head>
<meta name="author" content="dony">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
<meta name="renderer" content="webkit">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>音频控制进度条</title>
<style type="text/css">

body,div{padding: 0;margin: 0;}
.m-main{width:560px; height: 100%; margin: 3% auto; background-color:#30a5ff;}
.m-main video{display: none; }
.m-main .player {
  width: 100%;
  height: 150px;
  position: relative;
  bottom: 0px;
}
.m-main .player>a{display: inline-block; width: 20%; margin: 0 auto; padding: 5%; color: #FFF; text-align: center;}
.m-main .play-box {
  width: 100%;
  margin: 0 auto;
}

.m-main .play-box .left {
  width: 100%;
  float: left;
}

.m-main .play-box .left p.timeline { width: 70%;height: 10px; background-color: rgba(216, 216, 216, 0.5); border-radius: 5px; margin:30px auto 0; position: relative; z-index: 2; }
.m-main .play-box .left p.timeline span {position: relative; width: 0px; height: 10px; background-color: #FFF; border-radius: 5px; display: block; -webkit-transition: width ease-out 0.3s;-o-transition: width ease-out 0.3s;transition: width ease-out 0.3s;}
.m-main .play-box .left p.timeline span:after{content: ""; position: absolute; top: -4px; right:-0.6rem;width: 1.2rem; height:1.2rem; border-radius: 50%;background-color: #FFF;}
.m-main .play-box .left div.info { height: 26px; line-height: 26px; font-size: 14px; color: #000; position: relative; top: -18px; margin:0 10px; z-index: 1;color: #FFF;}
.m-main .play-box .left div.info .size { float: left; display: block;}
.m-main .play-box .left div.info .timeshow { float: right; display: block;}
</style>
</head>
<body>
<div class="m-main">
  <div class="player">
   <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" id="js-play">播放</a>
   <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" id="js-pause">暂停</a>
    <div class="play-box">
      <div class="left">
        <p class="timeline"><span style=""></span></p>
        <div class="info">
          <span class="size">00:00</span>
          <span class="timeshow">00:00</span>
        </div>
      </div>
    </div>
  </div>
 <div class="video">
 <video controls autoplay name="media" id="js-video"><source src="http://chipsguide.snaillove.com/Public/Uploads/file_server_storage/Audio/2017/03/23/19/192_20003137.mp3" type="video/mp4"></video>
 </div>
</div>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
  $(function(){
   AudioControl('js-video')
   function AudioControl(id){
     // 音频控制进度条
     var audio = document.getElementById(id);
     $(audio).on('loadedmetadata',function(){
    audio.pause();
    // 进度条控制
     $(document).on('touchend','.timeline',function(e){
       var x = e.originalEvent.changedTouches[0].clientX-this.offsetLeft;
       var X = x < 0 ? 0 : x ;
       var W = $(this).width();
       var place = X > W ? W : X;
       audio.currentTime = (place/W).toFixed(2)*audio.duration
       $(this).children().css({width:(place/W).toFixed(2)*100+"%"})
     });
     // 播放
    $(document).on('click','#js-play',function(){
    audio.play()
    });
    // 暂停
    $(document).on('click','#js-pause',function(){
    audio.pause()
    });
     })
     setInterval(function () {
       var currentTime = audio.currentTime;
       setTimeShow(currentTime);
     }, 1000);
     // 设置播放时间
   function setTimeShow(t) {
     t = Math.floor(t);
     var playTime = secondToMin(audio.currentTime);
     $(".size").html(playTime);
     $('.timeshow').text(secondToMin(audio.duration))
     $('.timeline').children().css({width:(t/audio.duration).toFixed(4)*100+"%"})
   }
     // 计算时间
   function secondToMin(s) {
     var MM = Math.floor(s / 60);
     var SS = s % 60;
     if (MM < 10)
       MM = "0" + MM;
     if (SS < 10)
       SS = "0" + SS;
     var min = MM + ":" + SS;
     return min.split('.')[0];
   }
   }
  })
</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
javascript arguments使用示例
Dec 16 Javascript
JavaScript中的关联数组问题
Mar 04 Javascript
JavaScript实现随机替换图片的方法
Apr 16 Javascript
DOM 高级编程
May 06 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
js实现中文实时时钟
Jan 15 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
Apr 01 #Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 #Javascript
原生JS实现九宫格抽奖效果
Apr 01 #Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 #Javascript
ES6 Promise对象概念与用法分析
Apr 01 #Javascript
JavaScript中闭包的详解
Apr 01 #Javascript
基于JavaScript实现验证码功能
Apr 01 #Javascript
You might like
网站加速 PHP 缓冲的免费实现方法
2006/10/09 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
php 的反射详解及示例代码
2016/08/25 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
python开发之thread实现布朗运动的方法
2015/11/11 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
python游戏地图最短路径求解
2019/01/16 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
管道维修工岗位职责
2013/12/27 职场文书
2014端午节活动策划方案
2014/01/27 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
给老婆的道歉信
2015/01/20 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle