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 相关文章推荐
使用onbeforeunload属性后的副作用
Mar 08 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
Sep 29 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
jQuery中wrapAll()方法用法实例
Jan 16 Javascript
JS模拟实现Select效果代码
Sep 24 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 Javascript
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
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
YII模块实现绑定二级域名的方法
2014/07/09 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
2013/07/31 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
使用python实现扫描端口示例
2014/03/29 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
诚实守信道德模范事迹材料
2014/08/15 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
酒桌上的开场白
2015/06/01 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
python 调用js的四种方式
2021/04/11 Python