Как остановить цикл JQuery FadeIn / Out, Stop () не работает

0

У меня есть следующая функция для мерцания звезд, которая является частью последовательности анимации.

  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();}

Может кто-то, пожалуйста, назовите меня в правильном направлении.

Благодарю!

  • 0
    Попробуйте удалить clearQueue () и просто иметь .stop ()
  • 0
    Это тоже пробовал, но не повезло.
Теги:
loops
fadein
fadeout

1 ответ

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();
}
  • 0
    Спасибо! оно работает. Вы, сэр, спасатель жизни :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню