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 相关文章推荐
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
Aug 13 Javascript
javascript日期格式化示例分享
Mar 05 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
Oct 11 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
Sep 14 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
跟我学习javascript的执行上下文
Nov 18 Javascript
js手动播放图片实现图片轮播效果
Sep 17 Javascript
react 兄弟组件如何调用对方的方法示例
Oct 23 Javascript
vue prop属性传值与传引用示例
Nov 13 Javascript
js布局实现单选按钮控件
Jan 17 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 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网页病毒清除类
2014/12/08 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
javascript demo 基本技巧
2009/12/18 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
Python ftp上传文件
2016/02/13 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
详解Python 切片语法
2019/06/10 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
新闻专业本科生的自我评价分享
2013/11/20 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
网络宣传方案
2014/03/15 职场文书
考试诚信承诺书
2014/05/23 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
教学反思怎么写
2016/02/24 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
手写实现JS中的new
2021/11/07 Javascript