我是使用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);
感谢任何帮助,谢谢。
答案 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);