@nathan111777

Как связать две части кода?

Есть слайдер, с прокруткой по клику стрелочки:
HTML:
<div class="slideshow-container">

<div class="mySlides fade">
  <img src="http://hq-wallpapers.ru/wallpapers/7/hq-wallpapers_ru_nature_33645_1920x1080.jpg" style="width:100%">
</div>

<div class="mySlides fade">
  <img src="http://luxfon.com/pic/201210/1920x1080/luxfon.com-16903.jpg" style="width:100%">
</div>

<div class="mySlides fade">
  <img src="http://wallpapers-image.ru/1920x1080/world/wallpapers/world-wallpapers-1920x1080-0002.jpg" style="width:100%">
</div>

<a class="prev" onclick="plusSlides(-1)">&#10094;</a>
<a class="next" onclick="plusSlides(1)">&#10095;</a>

</div>


СSS:
* {box-sizing: border-box}
body {font-family: Verdana, sans-serif; margin:0}
.mySlides {display: none}
img {vertical-align: middle;}

.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
}
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}


JS: (часть 1)
var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}


function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";  
  }
  slides[slideIndex-1].style.display = "block";  
}


Хочу сделать автоматическую прокрутку слайдер благодаря setTimeout.
Сделал свою функцию (часть 2):
autoSlider();
var timer;

function autoSlider(){
   timer=setTimeout(plusSlides, 2000); 
}

Как правильно эту функцию(часть 2) связать с слайдером по клику(часть 1) чтобы работал код.
Я просто не очень понимаю как обращаться одной функцией к другой.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@i1yas
Вот вызов функции, которая прокручивает слайдер вперед
<a class="next" onclick="plusSlides(1)">&#10095;</a>

Нужно передать его в setTimeout
timer=setTimeout(function() {
  plusSlides(1);
}, 2000);


Вообще setTimeout сработает один раз, если вы хотели чтобы прокрутка слайдера шла постоянно, то нужно использовать setInterval
timer=setInterval(function() {
  plusSlides(1);
}, 2000);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы