setInterval和延迟

时间:2011-05-10 15:33:35

标签: javascript jquery

我试图每4秒做一次div反弹,15秒后fadeOut。下面的代码使div消失,反弹不会发生。

$(document).ready(function(){
    function salta() {
        $('.recomenda').effect("bounce",{ times:4 },300);
    }
    setInterval(salta, 4000);
    $('.recomenda').delay(15000).fadeout('slow');
});

这不是你的工作,你可以给我任何暗示吗?

亲切的问候。

在Matt的帮助下,我想到了如何做到这一点:

function salta() {
    $('.recomenda').effect("bounce",{ times:4 },300);
}
    var interval = setInterval(salta, 3500);

setTimeout(function (){ 
    clearInterval(interval);
    $('.recomenda').fadeOut('slow');
    }, 15000);

1 个答案:

答案 0 :(得分:3)

编辑 - 最终版本

$(document).ready(function ()
{
    var $recomenda = $('.recomenda');

    function salta()
    {
        $recomenda.effect('bounce', {times:4}, 300);
    }

    salta();
    var interval = setInterval(salta, 4000);

    setTimeout(function ()
    {
        // stop the interval from running unnecessarily
        clearInterval(interval);
        $recomenda.fadeOut('slow');
    }, 15000);
});

还有其他两个问题:

  • fadeout()代替fadeOut()
  • 使用.delay()干扰了反弹效果

演示:http://jsfiddle.net/mattball/a2F3W/