jQuery delay()在效果之后工作,但之前没有?

时间:2010-08-17 12:06:45

标签: jquery delay

我正在使用打字机效果[http://plugins.jquery.com/project/jTypeWriter]显示一行文字。

我想:1)延迟3秒
2)显示打字机文字
3)延迟4秒
4)淡出

但是这个代码不会发生第1步: $('blockquote').delay(3000).jTypeWriter({duration:1}).delay(4000).fadeOut();

为什么delay()一开始不起作用?

3 个答案:

答案 0 :(得分:1)

delay()只能在动画队列中运行 - 所以是的,动画需要在它按预期工作之前调用。

setTimeout()可能是要走的路:

var t = window.setTimeout(function(){
    $('#myDiv').jTypeWriter({duration:1}).delay(4000).fadeOut();
}, 3000);

答案 1 :(得分:1)

要使用.delay(),您需要将jTypeWriter()添加到动画队列中。您可以使用jQuery的.queue()方法:

$('blockquote').delay(3000)
               .queue(function( n ){ $(this).jTypeWriter({duration:1}); n(); })
               .delay(4000)
               .fadeOut();

调用n()中的.queue()参数用于允许队列中的下一个元素继续。

答案 2 :(得分:0)

timeOut = setTimeout(function(){
        $('blockquote').jTypeWriter({duration:1}).delay(4000).fadeOut();
    },3000)

它应该可以工作,但它是未经测试的代码。