Добавить автопрокрутку на слайдер

708
26 января 2017, 04:39

У меня вот такой вопрос, как на этом слайдере сделать автопрокрутку?

var slideIndex = 1; 
showSlides(slideIndex); 
 
function plusSlides(n) { 
  showSlides(slideIndex += n); 
} 
 
function currentSlide(n) { 
  showSlides(slideIndex = n); 
} 
 
function showSlides(n) { 
  var i; 
  var slides = document.getElementsByClassName('slide'); 
  var dots = document.getElementsByClassName('dot'); 
 
  if (n > slides.length) { 
    slideIndex = 1; 
  } 
  if (n < 1) { 
    slideIndex = slides.length; 
  } 
  for (i = 0; i < slides.length; i++) { 
    slides[i].style.display = "none"; 
 
  } 
  for (var i = 0; i < dots.length; i++) { 
    dots[i].className = dots[i].className.replace("active", ""); 
  } 
  slides[slideIndex - 1].style.display = "block"; 
  dots[slideIndex - 1].className += " active"; 
}
<div id="slider"> 
  <div class="slide fade"> 
    <div class="number-text">1/4</div> 
    <img src="img/slide1.jpg" style="width: 100%" alt=""> 
    <div class="text">Первый слайд</div> 
  </div> 
  <div class="slide fade"> 
    <div class="number-text">2/4</div> 
    <img src="img/slide2.jpg" style="width: 100%" alt=""> 
    <div class="text">Второй слайд</div> 
  </div> 
  <div class="slide fade"> 
    <div class="number-text">3/4</div> 
    <img src="img/slide3.jpg" style="width: 100%" alt=""> 
    <div class="text">Третий слайд</div> 
  </div> 
  <div class="slide fade"> 
    <div class="number-text">4/4</div> 
    <img src="img/slide4.jpg" style="width: 100%" alt=""> 
    <div class="text">Четвертый слайд</div> 
  </div> 
  <a class="prev" onclick="plusSlides(-1)"> 
    <img src="img/arrow-left.png" alt=""> 
  </a> 
  <a class="next" onclick="plusSlides(1)"> 
    <img src="img/arrow-right.png" alt=""> 
  </a> 
</div> 
<br> 
<div style="text-align: center;"> 
  <span class="dot active" onclick="currentSlide(1)"></span> 
  <span class="dot" onclick="currentSlide(2)"></span> 
  <span class="dot" onclick="currentSlide(3)"></span> 
  <span class="dot" onclick="currentSlide(4)"></span> 
</div>

Answer 1

Добавил setInterval: все работает

var slideIndex = 1; 
showSlides(slideIndex); 
 
function plusSlides(n) { 
  showSlides(slideIndex += n); 
} 
 
function currentSlide(n) { 
  showSlides(slideIndex = n); 
} 
 
function showSlides(n) { 
  var i; 
  var slides = document.getElementsByClassName('slide'); 
  var dots = document.getElementsByClassName('dot'); 
 
  if (n > slides.length) { 
    slideIndex = 1; 
  } 
  if (n < 1) { 
    slideIndex = slides.length; 
  } 
  for (i = 0; i < slides.length; i++) { 
    slides[i].style.display = "none"; 
 
  } 
  for (var i = 0; i < dots.length; i++) { 
    dots[i].className = dots[i].className.replace("active", ""); 
  } 
  slides[slideIndex - 1].style.display = "block"; 
  dots[slideIndex - 1].className += " active"; 
} 
var i = 1; 
  setInterval(function(){ 
  currentSlide(i) 
  i++; 
  if(i == 5) 
  { 
   i = 1; 
  } 
},2000)
<div id="slider"> 
  <div class="slide fade"> 
    <div class="number-text">1/4</div> 
    <img src="img/slide1.jpg" style="width: 100%" alt=""> 
    <div class="text">Первый слайд</div> 
  </div> 
  <div class="slide fade"> 
    <div class="number-text">2/4</div> 
    <img src="img/slide2.jpg" style="width: 100%" alt=""> 
    <div class="text">Второй слайд</div> 
  </div> 
  <div class="slide fade"> 
    <div class="number-text">3/4</div> 
    <img src="img/slide3.jpg" style="width: 100%" alt=""> 
    <div class="text">Третий слайд</div> 
  </div> 
  <div class="slide fade"> 
    <div class="number-text">4/4</div> 
    <img src="img/slide4.jpg" style="width: 100%" alt=""> 
    <div class="text">Четвертый слайд</div> 
  </div> 
  <a class="prev" onclick="plusSlides(-1)"> 
    <img src="img/arrow-left.png" alt=""> 
  </a> 
  <a class="next" onclick="plusSlides(1)"> 
    <img src="img/arrow-right.png" alt=""> 
  </a> 
</div> 
<br> 
<div style="text-align: center;"> 
  <span class="dot active" onclick="currentSlide(1)"></span> 
  <span class="dot" onclick="currentSlide(2)"></span> 
  <span class="dot" onclick="currentSlide(3)"></span> 
  <span class="dot" onclick="currentSlide(4)"></span> 
</div>

READ ALSO
Sources моего сайта,

Sources моего сайта,

Не понимаю, что за папки подключаются к сайту, который я делаю? Эти скрипты я не прописывал и зачем загружаются - не ясно, что делают - не понятноНужны...

370
Как проверить была нажата буква или нет? jQuery

Как проверить была нажата буква или нет? jQuery

В процессе разработки столкнулся с потребностью проверки была ли нажата буква(английского/русского алфавита) или же нетИзначально, я хотел...

524
Возврат в исходное положение при клике на стороннюю область

Возврат в исходное положение при клике на стороннюю область

Здравствуйте! Есть два блока - второй появляется при клике на первый и должен исчезать при клике на любую область кроме своей собственное

437
Второй вопрос по абстракции

Второй вопрос по абстракции

Доброго вечера всемЯ уже писал тут, что изучаю JS по книге "Выразительный JS" и тема опять проходит по абстракциям

479