Вы делаете это неправильно.Вам не нужен setInterval здесь.
Первое, что вам нужно знать, это то, что, как вы написали, все эти команды будут запускаться одновременно , то есть вы будете появляться и исчезатьв то же время (что будет выглядеть странно).Когда вы объединяете команды, они не ждут - все они работают одновременно.Вместо этого вы используете функцию обратного вызова, когда каждая анимация завершается, она вызывает обратный вызов, который выполняет следующий шаг.
Измените его следующим образом:
function fader(text, next) {
$("#adjective").fadeOut(500, function() {
$(this).text(text).delay(100).fadeIn(500, function() {
next();
});
});
}
function fader2() { fader('2', fader3); }
function fader3() { fader('3', fader4); }
function fader4() { fader('4', fader1); }
function fader1() { fader('1', fader2); }
fader2();
Функция фейдера выполняет каждый шаганимация.Затем, когда завершается финальная анимация, она вызывает переданную функцию для продолжения цикла.
Затем я устанавливаю несколько функций для определения последовательности (я уверен, что есть другие способы сделать это -массив возможно, но это было первое, что пришло в голову).
PS.Я не проверял это, могут быть опечатки.