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= ...
随机推荐
- 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
linux内核分析学习笔记 --第五章 系统调用的三层机制 学习重点--深入理解系统调用的过程 给MenuOS添加命令 添加命令的方式较为简单,在LinuxKernel/menu/test.c目录下, ...
- (12网络化部署深化下)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署
网络化部署一直是我非常想做的,现在已经基本看到了门路.今天早上实验,发现在手机上的支持也非常好(对于相机的支持还差一点),证明B/S结构的框架是非常有生命力的.下一步就是要将这个过程深化.总结,并且封 ...
- linux --- 2.常用命令 , python3, django安装
一.常用命令 1.常识命令 ① w 显示终端连接数 ②pwd 我在哪 ③whoami 我是谁 ④which 命令 找到命令的绝对路径 2.linux 命令行的组 ...
- Django框架 (一) 虚拟环境配置及简单使用
虚拟环境 什么是虚拟环境 对真实的python解释器的一个拷贝版本 是事实有效的,可以独立存在运行解释python代码 可以在计算机上拷贝多个虚拟环境 为什么要使用虚拟环境 保证真实环境的纯净性 框架 ...
- makefile如果没有符合的显式规则将会使用隐式规则
举例: 当前目录下有个Makefile和jello.c文件,其中有这样的规则jello.o:%.c %.h Makefile (静态模式规则),表明的含义为:要生成的jello.o目标依赖jello. ...
- 【POJ1961】period
[POJ1961]period 题目描述 如果一个字符串S是由一个字符串T重复K次构成的,则称T是S的循环元.使K出现最大的字符串T称为S的最小循环元,此时的K称为最大循环次数. 现在给定一个长度为N ...
- Gym 101775J Straight Master(差分数组)题解
题意:给你n个高度,再给你1~n每种高度的数量,已知高度连续的3~5个能消去,问你所给的情况能否全部消去:例:n = 4,给出序列1 2 2 1表示高度1的1个,高度2的2个,高度3的2个,高度4的1 ...
- MySQL 安装步骤
今天用了一下MySQL,刚好看到之前电保存脑的笔记,于是整理了一下,还是记在博客上方便查询. 1.官网下载https://dev.mysql.com/downloads/mysql/之前安装的是mys ...
- vue中使用BetterScroll
BetterScroll可以通过给content加min-height实现永远滚动 content千万不可以删除,千万不要在 content上写v-if
- jvm:垃圾收集器
垃圾收集器: Serial 收集器: 单线程收集器,专注做收集,会暂停别的工作.收集效果好. ParNew 收集器: 是Serial的多线程版本.目前只有它能和CMS收集器配合. Paralle ...