function toggleClass(selector, className, delay) {
const items = document.querySelectorAll(selector);
let index = items.length - 1;
return items.length
? setInterval(() => {
items[index].classList.remove(className);
index = (index + 1) % items.length;
items[index].classList.add(className);
}, delay)
: null;
}
const intervalId = toggleClass('.banner-block', 'active', 300);
// если захотите остановить переключение класса, делаете так: clearInterval(intervalId)
или
function toggleClass(selector, className, delay) {
const items = document.querySelectorAll(selector);
let timeoutId = null;
items.length && (function next(index) {
items[index].classList.remove(className);
index = -~index % items.length;
items[index].classList.add(className);
timeoutId = setTimeout(next, delay, index);
})(~-items.length);
return () => clearTimeout(timeoutId);
}
const stop = toggleClass('.banner-block', 'active', 300);
// надо остановить переключение класса, делаете так: stop()