Нужно запустить один html элемент за другим. Типа ротатор рекламы. Методом замены классов
По условиям задачи, есть такой код:
Нужно методом добавления и убирания классов создать эффект ротации содержимого.
"use strict";
const getAllRotationsClasses = document.querySelectorAll(".rotator__span");
const rotation = function() {
getAllRotationsClasses.forEach(function(elem) {
if (elem.classList.contains("rotator__span")) {
elem.classList.toggle("rotator__span__active");
}
});
}
setInterval(rotation, 1000)
.rotator__span {
display: none;
}
.rotator__span__active {
display: inline;
}
<div>
<p>
Я
<span class="rotation">
<span class="rotator_span rotator__span_active">учу JS</span>
<span class="rotator__span">краб</span>
<span class="rotator__span">покорю этот мир</span>
<span class="rotator__span">не сдамся</span>
<span class="rotator__span">упрямый</span>
<span class="rotator__span">добьюсь своей цели</span>
</span>
</p>
</div>
И этот код выбирает все не активированные, выводит их на экран в строку и убирает, а мне надо одну за другой. Как это реализовать? Объясните, пожалуйста крабу))
Ответы (1 шт):
Автор решения: Jean-Claude
→ Ссылка
Ну например так:
"use strict";
const getAllRotationsClasses = document.querySelectorAll(".rotation span");
let count = 1;
const rotation = function() {
getAllRotationsClasses.forEach(function(elem, index) {
elem.classList.toggle("rotator__span", count !== index);
});
count++;
if (count >= getAllRotationsClasses.length) {
count = 0;
}
}
setInterval(rotation, 1000);
.rotator__span {
display: none;
}
.rotator__span__active {
display: inline;
}
<div>
<p>
Я
<span class="rotation">
<span class="">учу JS</span>
<span class="rotator__span">краб</span>
<span class="rotator__span">покорю этот мир</span>
<span class="rotator__span">не сдамся</span>
<span class="rotator__span">упрямый</span>
<span class="rotator__span">добьюсь своей цели</span>
</span>
</p>
</div>