如何停止jQuery fadeIn / Out循环,stop()不起作用

时间:2013-12-21 04:18:24

标签: jquery loops fadein fadeout

我有以下星光闪烁效果的功能,它是动画序列的一部分。

  function fadeInOut() 
    {
    $('#stars').fadeIn(800, function () {
         $('#stars').fadeOut(800, function () {
                $('#stars').fadeIn(800, function () {
                    setTimeout(fadeInOut, 500);
                });
            });
        });
    setTimeout(fadeInOut, 12500);
    }

在动画结束时,我已经选择重播它。为此,我想停止这种闪烁的效果。我试过以下但是没有用。

  function replayAnim()
    { $('#stars').clearQueue().stop(true); animStart();}

有人可以指出我正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:0)

您还需要清除计时器

var timer;
function fadeInOut() {
    $('#stars').fadeIn(800, function () {
        $('#stars').fadeOut(800, function () {
            $('#stars').fadeIn(800, function () {
                timer = setTimeout(fadeInOut, 500);
            });
        });
    });
    timer = setTimeout(fadeInOut, 12500);
}

function replayAnim() {
    clearTimeout(timer)
    $('#stars').clearQueue().stop(true);
    animStart();
}