Прервать функцию
let prev = document.querySelector(".btn_prev");
let next = document.querySelector(".btn_next");
let slides = document.querySelectorAll(".slides");
let dot = document.querySelectorAll(".dot");
let slideWraper = document.querySelector(".slider_wraper");
let index = 0;
let activeSlide = function(activ){
for(let i=0; i<slides.length; i++){
slides[i].classList.remove("active");
}
slides[activ].classList.add("active");
}
let activedots = function(activ){
for(let i=0; i<dot.length; i++){
dot[i].classList.remove("active");
}
dot[activ].classList.add("active");
}
let nextSlide = function(){
if (index == slides.length - 1){
index = 0;
activeSlide(index);
activedots(index);
}
else{
index++;
activeSlide(index);
activedots(index);
}
}
next.addEventListener("click", nextSlide);
let prevSlide = function(){
if (index == 0){
index = slides.length -1;
activeSlide(index);
activedots(index);
}
else{
index--;
activeSlide(index);
activedots(index);
}
}
prev.addEventListener("click", prevSlide);
dot.forEach( function (item, indexDot){
item.addEventListener("click", function(){
index = indexDot;
activeSlide(index);
activedots(index);
clearInterval(interval);
})
})
let interval = setInterval(nextSlide, 1000);
мне нужно прервать функцию nextSlide при клике не могу сообразить как |
Цитата:
|
Цитата:
let prevSlide = function(){
if (index == 0){
index = slides.length -1;
activeSlide(index);
activedots(index);
}
else{
index--;
activeSlide(index);
activedots(index);
}
}
prev.addEventListener("click", prevSlide);
и она тоже сработает но вот тут будет конфликт
let nextSlide = function(){
if (index == slides.length - 1){
index = 0;
activeSlide(index);
activedots(index);
}
else{
index++;
activeSlide(index);
activedots(index);
}
}
next.addEventListener("click", nextSlide);
|
Сергей Ракипов,
попробуйте написать функцию, которая будет менять индекс, и вторую которая будет показывать картинку согласно этого индекса. http://javascript.ru/forum/misc/7820...e-galerei.html http://javascript.ru/forum/dom-windo...slajjdere.html |
Цитата:
|
рони,
я что то все перепробовал вплоть до абсурда, не выходит почему просто нельзя по клику на кнопку остановить этот let interval = setInterval(nextSlide, 1000); |
я первое что сделал это вот это, но оно почему то в первый раз не сработало, и я стал перебирать множество вариантов, потом решил повторить и оно сработало.
function stopInterval(){
clearInterval(interval);
}
prev.onclick = stopInterval;
next.onclick = stopInterval;
ведь это же нормальное решение? или корявое |
Нормальное
Но можно было и так
let nextSlide = function(){
if (index == slides.length - 1){
index = 0;
activeSlide(index);
activedots(index);
}
else{
index++;
activeSlide(index);
activedots(index);
}
clearInterval(interval);
}
next.addEventListener("click", nextSlide);
let prevSlide = function(){
if (index == 0){
index = slides.length -1;
activeSlide(index);
activedots(index);
}
else{
index--;
activeSlide(index);
activedots(index);
}
clearInterval(interval);
}
prev.addEventListener("click", prevSlide);
|
БЛАГОДАРЮ
|
| Часовой пояс GMT +3, время: 08:36. |