h5 audio进度条
h5 audio 播放进度条
效果图:

html部分:
<div class="audiojindu">
<div class="playcontrol">
<img id="imgcontrol" src="img/paly.png" alt="" />
</div>
<div class="jindu">
<div class="qstime">
00:00
</div>
<div class="endtime">
05:31
</div>
<div class="jindutiao">
<div class="ssjd">
<div class="yuan"></div>
</div>
</div>
</div>
<audio id="audio" src=""></audio>
</div>
css:
.audiojindu{
position: absolute;
left: 0.1rem;
right: 0.05rem;
bottom: 1.0rem;
height: 0.78rem;
}
.mood{
position: absolute;
top: 8.0rem;
left: 1.0rem;
right: 1.0rem;
line-height: 0.40rem;
font-size: 0.26rem;
color: #FFFFFF;
text-align: center;
height: 2.0rem;
overflow: hidden;
text-overflow:ellipsis;
}
.playcontrol{
position: absolute;
left:;
top:;
width: 0.78rem;
height: 0.78rem;
background: url(../img/controlbj.png) 0 0 no-repeat;
-webkit-background-size: 100% 100%;
background-size: 100% 100%;
border-right: 2px solid #908f8d;
}
#imgcontrol{
position: absolute;
left: 50%;
top: 50%;
width: 0.39rem;
height: 0.39rem;
margin-left: -0.195rem;
margin-top: -0.195rem;
}
.jindu{
position: absolute;
left: 0.8rem;
right:;
top:;
bottom:;
background: url(../img/jinbj.png)0 0 no-repeat;
-webkit-background-size: 100% 100%;
background-size: 100% 100%;
}
.qstime{
position: absolute;
left:;
top:;
width: 0.65rem;
height: 0.78rem;
font-size: 0.2rem;
text-align: center;
color: white;
line-height: 0.78rem;
}
.endtime{
position: absolute;
right:;
top:;
width: 0.65rem;
height: 0.78rem;
font-size: 0.2rem;
text-align: center;
color: white;
line-height: 0.78rem;
}
.jindutiao{
position: absolute;
left: 0.76rem;
right: 0.76rem;
top: 0.38rem;
border-bottom: 2px solid rgba(255,255,255,0.2);
}
.ssjd{
position: absolute;
left:;
top:;
width:0.0rem;
background-color:red;
border-bottom: 2px solid #ff3153;
-webkit-transition: width ease-out 0.3s;
-o-transition: width ease-out 0.3s;
transition: width ease-out 0.3s;
}
@-webkit-keyframes circle{
0%{ transform: rotate(0deg); }
100%{ transform: rotate(360deg); }
}
.yuan{
position: absolute;
left: 100%;
top: -0.1rem;
width: 0.24rem;
margin-left: -0.12rem;
height: 0.24rem;
border-radius: 0.12rem;
background-color: #ff3153;
border: 2px solid rgba(0,0,0,0.7);
box-sizing: border-box;
}
js:
var audioPlayer = document.querySelector('#audio');
var jindutiao = document.querySelector(".jindutiao");
var yuan = document.querySelector(".yuan");
var ssjd = document.querySelector(".ssjd");
//歌曲时长格式转化
function timeToStr(time) {
var m = 0,
s = 0,
_m = '00',
_s = '00';
time = Math.floor(time % 3600);
m = Math.floor(time / 60);
s = Math.floor(time % 60);
_s = s < 10 ? '0' + s : s + '';
_m = m < 10 ? '0' + m : m + '';
return _m + ":" + _s;
}
var zongTime = 0;
//歌曲可以播放的监听事件
audioPlayer.oncanplay = function() {
$(".endtime").html(timeToStr(audioPlayer.duration))
zongTime = audioPlayer.duration;
}
//进度事件监听
audioPlayer.addEventListener("timeupdate", function() {
$(".qstime").html(timeToStr(this.currentTime))
var baifenbi = this.currentTime / zongTime * 100;
var str = baifenbi.toFixed(2) + "%";
$(".ssjd").width(str);
});
//播放按钮控制
$(".playcontrol").on("click", function() {
if(audioPlayer.paused) {
console.log("让音频播放")
audioPlayer.play()
$(".viewimg").addClass("zhuan");
$(".playcontrol").empty();
$(".playcontrol").append('<img id="imgcontrol" src="img/zanting.png" alt="" />');
} else {
console.log("让音频暂停")
audioPlayer.pause()
$(".viewimg").removeClass("zhuan");
$(".playcontrol").empty();
$(".playcontrol").append('<img id="imgcontrol" src="img/paly.png" alt="" />');
}
})
//歌曲播放完的事件监听
audioPlayer.onended = function() {
audioPlayer.pause()
$(".viewimg").removeClass("zhuan");
$(".playcontrol").empty();
$(".playcontrol").append('<img id="imgcontrol" src="img/paly.png" alt="" />');
$(".qstime").html("00:00");
$(".ssjd").width("0%");
}
//拖动进度条
$(".jindutiao").on('touchend',function(e){
var x = e.originalEvent.changedTouches[0].clientX-$(".jindutiao").offset().left;
var X = x < 0 ? 0 : x ;
var W = $(this).width();
var place = X > W ? W : X;
audioPlayer.currentTime = (place/W).toFixed(2)*audioPlayer.duration;
$(".ssjd").css({width:(place/W).toFixed(2)*100+"%"})
})
h5 audio进度条的更多相关文章
- jquery自定义进度条与h5原生进度条
介绍一款自定义的进度条 <div class="box-nine"> <div class="progress"> <!--一 ...
- audio进度条
如上图所示:为效果图 代码如下: <!doctype html><html> <head> <meta name="author" con ...
- H5 可堆叠的圆环进度条,支持任意数量子进度条
by Conmajia SN: S22-W1M 由来 看到一篇帖子<vue实用组件--圆环百分比进度条>,让我想起了很多年前我在WinForm下仿制过的Chrome进度条. ▲ 原版进度条 ...
- h5 audio播放问题,audio获取缓存进度条
<!--全局 audio --> <audio id="audio" @playing="audioReady" @timeupdate=&q ...
- 给H5页面添加百分比的进度条,精确度高
进度条样式地址:http://sandbox.runjs.cn/show/6vxbxjrf SVG圆环样式地址:http://sandbox.runjs.cn/show/3ho1qpe9 原理:由于H ...
- 自动适配H5容器(UIViewView/WKWebView),生成长图,防微信进度条
前段时间撸代码猥琐发育的时候,设计师老王给了张截图某宝APP上一个生成长图分享的功能,正好公司有这个需求,于是在立马开始操练起来!在万能的度娘上搜集整理资料后发现很多文章介绍的方案对WKWebView ...
- Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现自定义加载进度条的效果
1.webView加载h5网页视频,播放不了,android3.0之后要在menifest添加硬件加速的属性 android:hardwareAccelerated="true". ...
- h5实现手机端等级进度条
h5实现等级进度条 需求如下: 实现一个动画进度条,页面一打开实现一个进度条动画,因为App这个页面会经常改,所以没有使用原审Android或者IOS来实现,希望通过H5来做: 服务器端返回如下数据: ...
- H5自带进度条&滑块
一.H5自带进度条 <div id="d1"> <p id="pgv">进度:0%</p> <progress id= ...
随机推荐
- suse 12sp1 oracle 11g r2 时出现错误 调用/sysman/lib/ins_emagent.mk的目标nmo时出错
要因为C库的问题,解决办法就是手动指定C库位置出现agent nmhs问题后,找到$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,在文件里找字符串 $(MK_EMAG ...
- mysql查询INFORMATION_SCHEMA表很慢的性能优化
最近发现,我们有些环境的tomcat应用启动非常缓慢,大部分在3-5分钟,有个测试环境更加阶段,要十几分钟才能启动完成.经过仔细分析,是一个查询INFORMATION_SCHEMA库中数据字典信息的查 ...
- sublime3 快速创建html模板
1 安装 Package Control1.1 ctrl + ` 呼出控制台1.2 复制(不要带最外层的双引号,该代码仅适用于sublime text 3)“import urllib.request ...
- Centos7编译安装zabbix-4.0.1
架构组合:nginx1.9.10+php7.0.32+mysql5.7.22+zabbix4.0.1 nginx1.9.10 先装依赖 openssl-1.1.0f tar zxvf openssl- ...
- 20180307-Xen、KVM、VMware、hyper-v等虚拟化技术的比较
xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 R2附带的虚拟化组件,如果你买了足够的授权,hyper-v(包括hy ...
- Java字节码浅析(—)
英文原文链接,译文链接,原文作者:James Bloom,译者:有孚 明白Java代码是如何编译成字节码并在JVM上运行的非常重要,这有助于理解程序运行的时候究竟发生了些什么.理解这点不仅能搞清语言特 ...
- BSGS算法学习笔记
从这里开始 离散对数和BSGS算法 扩展BSGS算法 离散对数和BSGS算法 设$x$是最小的非负整数使得$a^{x}\equiv b\ \ \ \pmod{m}$,则$x$是$b$以$a$为底的离散 ...
- topcoder srm 335 div1
problem1 link 直接模拟即可. import java.util.*; import java.math.*; import static java.lang.Math.*; public ...
- 【POJ1961】period
[POJ1961]period 题目描述 如果一个字符串S是由一个字符串T重复K次构成的,则称T是S的循环元.使K出现最大的字符串T称为S的最小循环元,此时的K称为最大循环次数. 现在给定一个长度为N ...
- facebook api之Business Manager API
Business-scoped Users - The new user is tied to a particular business and has permissions scoped to ...