jQuery:延迟变量play()函数?

时间:2014-02-18 10:26:11

标签: javascript jquery audio

我是使用jQuery的新手,我使用以下代码将div淡入页面。

$("#DivIdGoesHere").delay(time).fadeIn(time);

我正在使用以下代码播放声音文件。

var shrill_strings = new Audio('audio/shrill_strings.ogg');
shrill_strings.play();

我只是想知道是否有办法可以做到:

$shrill_stings.delay(time).play(time);

感谢任何帮助,谢谢。

3 个答案:

答案 0 :(得分:2)

setTimeout(function () {
  new Audio('audio/shrill_strings.ogg').play();
}, 1000);

答案 1 :(得分:1)

您可以在此处尝试使用setTimeout() js方法。

所以不要这样:

$("#DivIdGoesHere").delay(time).fadeIn(time);

你可以试试这个:

setTimeout(function(){
    $("#DivIdGoesHere").fadeIn(time);
}, time);

所以最后你可以尝试下面的代码:

var shrill_strings = new Audio('audio/shrill_strings.ogg');

setTimeout(function(){
    shrill_strings.play(time);
}, time);

其中var time是以毫秒为单位的时间。

答案 2 :(得分:0)

delay(time)有效,因为所有jQuery动画都被添加到队列中,并且从该队列中异步提取它们以便执行。 delay()调用基本上会向队列添加另一个动画,该动画不会更改任何属性并强制队列中的后续动画稍后启动。

由于play()方法不使用jQuery的效果队列,因此延迟对它没有影响。

正如提到的其他答案一样,您需要直接使用setTimeout来延迟启动声音:

var shrill_strings = new Audio('audio/shrill_strings.ogg');
setTimeout(shrill_strings.play.bind(shrill_strings), time);