@ruslite

Как по очереди переключать элементы?

Есть такой блок, в нём "детки". Нужно чтобы каждую 1 секунду один блок исчезал, а следующий появлялся. Изначально активен первый элемент. Пытался через each, но мне сразу все дочерние отключает:
<div class="landing__features__carousel">
	<div class="landing__features__carousel-1"></div>
	<div class="landing__features__carousel-2" style="display: none"></div>
	<div class="landing__features__carousel-3" style="display: none"></div>
</div>

setInterval(function(){
    			$('.landing__features__carousel > div').each(function(index) {
    				// Пытался тут setTimeout ставить - всё равно все отключает сразу и всё
    				$(this).css('display', 'none');
    				$(this).next().css('display', 'block');
    			});
      	}, 500); // это для цикличности

Кто подскажет в чём ошибка?
  • Вопрос задан
  • 278 просмотров
Решения вопроса 1
potapchino
@potapchino
html
<div class="wrap">
  <div class="block visible">1</div>
  <div class="block">2</div>
  <div class="block">3</div>
  <div class="block">4</div>
  <div class="block">5</div>
</div>

css
.block {
  display: none;
}

.block.visible {
  display: block;
}

js
function toggler(selector, delay) {
  let elems = $(selector),
      length = elems.length-1,
      i = 0;
  
  function toggleTo(index) {
    elems.removeClass('visible');
    $(elems[index]).addClass('visible');
  }
  
  setInterval(function(){
    toggleTo(i === length ? i = 0 : ++i)
  }, delay);
}

toggler('.block', 1000);

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Negwereth
@Negwereth
lvivcss.com.ua
CSS Анимация + задержка на каждом элементе.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект