IvanInvanov
@IvanInvanov
Новичок

Почему не работает переключение слайдов по времени?

Добрый день, подскажите пожалуйста. Я новичок и пытаюсь написать слайдер, переключение стрелками работает, а вот переключение по времени - нет. Подскажите пожалуйста в чём моя ошибка.

<div class="about_items-item">
						<div class="item_rigth">
							Slide1
					</div>

					<div class="about_items-item">
						Slide2
					</div>

					<div class="about_items-item">
						Slide3
					</div>

					<div class="about_items-item">
						Slide4
					</div>

let slide = document.getElementsByClassName('about_items-item'); // слайды
let currentSlide = 0;

//Отображаем текущий слайд
showSlides(currentSlide)
function showSlides(currentSlide){
	for(let i = 0; i < slide.length; i++){
		slide[i].style.display = 'block'
		if(i != currentSlide){
			slide[i].style.display = 'none'
		}
	}
}

function incrementSlide(){
	if(currentSlide != 3){
		currentSlide++;
		showSlides(currentSlide);
	}else{
		currentSlide = -1;
		currentSlide++;
		showSlides(currentSlide);
	}
}
function incrementTimeSlide() {
  incrementSlide();
  incrementTimeSlide()
}

setTimeout(incrementTimeSlide, 5000);
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Функция incrementTimeSlide запускаят саму себя, бесконечно, пока ресурсы не кончатся.

let slides = document.getElementsByClassName('about_items-item'); // слайды
let currentSlide = 0;

//Отображаем текущий слайд
function showSlides(currentSlide){
  for(let i = 0; i < slides.length; i++){
    slides[i].style.display =  (i == currentSlide)
      ? 'block' : 'none'
  }
}

function incrementSlide(){
  currentSlide++;
  if (currentSlide >= slides.length) {
    currentSlide = 0;
  }
  showSlides(currentSlide);
}

showSlides(currentSlide)
setInterval(incrementSlide, 3000);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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