我尝试尽可能简单地为音频制作进度条。我能够制作一个播放和停止按钮,它的工作原理。我能用一个简单的动画创建一个进度图形。 (这首歌有30秒,我的动画是30毫秒。)现在我遇到了这个问题:
当我点击该栏的那一部分时,如何才能进入歌曲的任何地方?
(我不想要任何插件。我尝试自己做所有事情,并了解每一步)
以下是要播放的代码: http://jsfiddle.net/396aP/1/
HTML:
<div id="play">Play</div>
<div id="stop">Stop</div>
<div id="progressbar">
<div id="bar">
<div id="indicator"></div>
</div>
</div>
<br><br>
<audio id="audio" src="http://a3.mzstatic.com/us/r1000/075/Music/35/e5/c6/mzm.pffzpdco.aac.p.m4a">
</audio>
CSS:
#play {
position:absolute;
left:45px; top:20px;
cursor: pointer;
}
#stop {
position:absolute;
left:90px; top:20px;
cursor: pointer;
}
#progressbar{
position:absolute;
width:0px;
height:4px;
top:50px;
left:45px;
}
#bar{
position:absolute;
width:150px; height:10px;
background-color:#999;
}
#indicator{
position:absolute;
width:0px; height:10px;
background-color:#333;
}
JQUERY:
$(function(){
$("#play").click(function() {
$("#audio").trigger('play');
$("#indicator").animate({"width": "150px"}, 30000);
});
$("#stop").click(function() {
$("#audio").trigger('pause');
$("#indicator").stop();
});
});
答案 0 :(得分:0)
如果问题是抓住了鼠标单击的位置,请尝试以下操作:
$("#progressbar").mouseup(function(e){
var leftOffset = e.pageX - $(this).offset().left;
var songPercents = leftOffset / $(this).width;
var audio = $('audio');
audio.currentPosition = songPercents * audio.duration;
});
我没有尝试过,所以我不确定它会在第一次尝试时起作用,但它应该给你一个开始。