Mecitan
@Mecitan
Уверенный пользователь клавиатуры

Как зациклить setInterval?

Здравствуйте! Нужна помощь. За последний час прошерстил по разным сайтам и не нашёл нужный ответ, а в голове уже каша от информации. Прошу совета или помощи в решении.

Стоит такая задача. Вывести в div элементы массива и по окончанию запустить прокрутку сначала. В общем должно быть зациклено действие. С первой частью я справился. Поочерёдно выводятся все элементы. Как и положено на последнем элементе всё и заканчивается.
Но как перезапустить setInterval?Понимаю, что надо обнулить счётчик. Но как это сделать?
let texts = ['text1', 'text2', 'text3', 'text4'];
let div = document.querySelector('#slider');
let i = 0;

function timer () {
    setInterval( () => {
        let x = texts[i++];
            if(x !== undefined) {
                div.innerHTML = x
            };
    }, 500);
};
timer();
  • Вопрос задан
  • 202 просмотра
Решения вопроса 2
dollar
@dollar
Делай добро и бросай его в воду.
let texts = ['text1', 'text2', 'text3', 'text4'];
let div = document.querySelector('#slider');
let i = 0;

function timer () {
    setInterval( () => {
        let x = texts[i++];
        if(x !== undefined) {
            div.innerHTML = x
        } else i = 0;
    }, 500);
};
timer();
Ответ написан
Комментировать
WblCHA
@WblCHA
const texts = ['text1', 'text2', 'text3', 'text4'];
	const div = document.querySelector('#slider');
  
  const timer = () => {
    const maxIndex = texts.length;
    let i = 0;
    
    setInterval(() => {
      div.innerHTML = texts[i];
      i = (i + 1) % maxIndex;
    }, 500);
  }
  
  timer();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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