jquery - 进度条:跳到一个点

标签 jquery audio

我尝试使音频的进度栏尽可能简单。我能够制作一个播放和停止按钮,并且它可以正常工作。我能够用简单的动画制作进度图形。 (这首歌有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();
    }); 
});

最佳答案

如果您的问题出在鼠标的位置,请尝试以下操作:

$("#progressbar").mouseup(function(e){
    var leftOffset = e.pageX - $(this).offset().left;
    var songPercents = leftOffset / $(this).width;
    var audio = $('audio');
    audio.currentPosition = songPercents * audio.duration;
});

我还没有尝试过,所以不确定它是否会在第一次尝试中起作用,但是它应该为您提供一个开始。

关于jquery - 进度条:跳到一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710984/

相关文章:

c++ - 检测声音缓冲区是否充满数据

javascript - 当 Firebug 运行时,jQuery 在 Firefox 中工作,当 Firebug 未运行时,jQuery 不起作用

javascript - AngularJS - 使用指令允许 jQuery 单击事件触发 ng-click

python - 随时随地向 GStreamer 管道添加和删除音频源

audio - 调试脚本

iOs 为 VOIP 应用程序播放音频

javascript - JQuery 循环(php + sql)

具有嵌套效果循环的 jquery 动画

javascript - 轻松切换 jquery/html/css3 在 ie 中无法正常工作

android - 如何在 android 中使用可视化图 TableView 录制音频?