MhMorozov
@MhMorozov

Как сделать смену opacity каждые 5 сек?

Здравствуйте! Весь вчерашний день ломал голову, мне нужно, чтобы блоки, которые за счет absolute лежат друг на друге, каждые 5 сек менялись. Я это сделал так, что изначально они все скрыты, потом через секунду появляется первый блок, затем 2-ой, 3-ий, после четвертого они все исчезают и всё заново. Изначально всё идет как надо, но после появления 4-ого блока начинается вакханалия, блоки рандомно появляются и исчезают, без какой-либо последовательности. Скорее всего я неправильно использую setInterval, отчасти я понимаю, почему так происходит, но никак не могу это решить, буду крайне благодарен, если поможете) https://jsfiddle.net/v5de40ng/
  • Вопрос задан
  • 149 просмотров
Решения вопроса 2
Tim-A-2020
@Tim-A-2020
примерно так
let i = 1;
setInterval(() => {
    $('#sloi' + i).fadeIn('slow');
    if (i > 4) {
        i = 1;
        $('#sloi2, #sloi3, #sloi4').fadeOut('slow');
    }
    i++;
}, 5000)
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
function fadeToggle(selector, delay) {
  let index = -1;

  return setInterval($items => {
    $items.eq(index).fadeOut('slow');
    index = (index + 1) % $items.length;
    $items.eq(index).fadeIn('slow');
  }, delay, $(selector));
}


const intervalId = fadeToggle('.sloi', 1000);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы