2014-01-21 3 views
0

Я искал вокруг для решения моей проблемы и пытались решить эту проблему с анимацией CSS3 или setInterval, но без эффектаинтервал анимации FadeIn FADEOUT

ЧТО Я ХОЧУ ДОСТИЖЕНИЯ?

Я хочу сделать эту анимацию в качестве загрузчика, это значит, что ее петля бесконечно Это логотип, который я хочу, чтобы fadeIn и Out по одному по часовой стрелке.

Почему setInterval не работает? Потому что каждая анимация с торговлей и каждая повторная задержка не применяются.

function runIt() { 
    var time = 600; 
    $(".first").fadeIn(time).fadeOut(time); 
    $(".second").delay(time).fadeIn(time).fadeOut(time); 
    $(".third").delay(time*2).fadeIn(time).fadeOut(time); 
    $(".fourth").delay(time*3).fadeIn(time).fadeOut(time); 
    }; 
runIt(); 

EXAMPLE CODEPEN

Любая помощь будет признателен МНОГО! :)

РЕШЕНИЕ ДЛЯ ВСЕХ КТО ЕСТЬ ЖЕ ПРОБЛЕМА:

  function runIt() { 
       var time = 600; 
       $(".first").fadeIn(time).fadeOut(time, function(){ 
        $(".second").fadeIn(time).fadeOut(time, function(){ 
         $(".third").fadeIn(time).fadeOut(time, function(){ 
          $(".fourth").fadeIn(time).fadeOut(time, runIt); 
         }); 
        }); 
       }); 



      }; 
      runIt(); 
+1

Теперь, когда вы редактировали, причина вашего 'setInterval' не работа заключается в том, что у вас нет 'setInterval' в вашем коде. –

+0

В любом случае, это было неправильно, вот почему я прошу сообщество помочь :) –

+0

Снизьте меня для чего? Я не включил также пример с анимацией css3, и все же было нормально ... setInterval функция отменена, потому что это неправильно. Итак, почему это должно испортить вам голову с неправильным кодом? –

ответ

4

Вы можете использовать setInterval, но, вероятно, чистое решением было бы назвать runIt снова от обратного вызова конечной анимации:

function runIt() { 
    var time = 600; 
    $(".first").fadeIn(time).fadeOut(time); 
    $(".second").delay(time).fadeIn(time).fadeOut(time); 
    $(".third").delay(time*2).fadeIn(time).fadeOut(time); 
    $(".fourth").delay(time*3).fadeIn(time).fadeOut(time, runIt); // call runIt when fadeOut completes 
}; 
runIt(); 
+0

Хорошее решение. – Enijar

+0

Действительно, это хорошее решение –

+0

Спасибо за помощь :) –

1

SetInterval работы. Вам нужно вызвать функцию до начала интервала:

runIt(); 

setInterval(function() { 
    runIt(); 
}, 3600); 

CodePen пример here.

+0

должно быть время * 8 не время * 6, потому что он должен дождаться окончания анимации до перезапуска, поэтому «setInterval (function() {runIt();}, 4800); – QuestionMarcs

+0

Теперь посмотрите, как его работа .. и я думаю, что это работает очень плохо. После четвертого элемента звезды второй и есть беспорядок. –