Для школьного проекта я кодирую слайд-шоу, и часть JavaScript должна использовать объектно-ориентированное программирование - у меня есть метод "nextSlide", который переключается между изображениями для анимации карусели, и я хочу, чтобы анимация выполнялась автоматически каждые 5 секунд:
Я попробовал следующий код, но он, кажется, не работает,
var diaporama = {
slides : document.querySelectorAll('#slides .slide'),
currentSlide : 0,
nextSlide : function() {
slides[currentSlide].className = 'slide';
currentSlide = (currentSlide+1)%slides.length;
slides[currentSlide].className = 'slide showing';
},
slideInterval : function() {
setInterval(this.nextSlide(), 5000)
}
}
diaporama.slideInterval();
Анимация не выполняется, и Firefox выдает мне следующую ошибку: SyntaxError: ожидаемое выражение, got ':' SyntaxError: отсутствует формальный параметр
Редактировать: я нашел способ заставить его работать, изменяя мой код следующим образом:
nextSlide : function() {
this.slides[this.currentSlide].className = 'slide';
this.currentSlide = (this.currentSlide+1)%this.slides.length;
this.slides[this.currentSlide].className = 'slide showing';
}
}
var myVar = setInterval("diaporama.nextSlide()", 5000)