Здрасте, подскажите, пожалуйста, как мне вставить в new Timer(), btnNext, чтобы метод начал работать...
см. два последних, в первом не по делу написано..........))
window.onload = function(e) {
new Timer({
images: '.gallery img',
rate: 1000,
auto: true,
});
}
class Timer {
constructor(obj) {
let slider = this,
i = 0;
this.images = document.querySelectorAll(obj.images);
this.rate = obj.rate || 1500;
this.auto = obj.auto;
this.btnNext = obj.btnNext;
}
btnNext() {
slider.images[i].classList.remove('showed');
i++;
if(slider.images[i] >= slider.images.length) {
i = 0;
}
slider.images[i].classList.add('showed');
}
if(slider.auto) {
setInterval(slider.btnNext, slider.rate)
}
}
и еще в строке 26 пишет ошибку:"Uncaught SyntaxError: Unexpected token . ".
function Slider (obj) {
let slider = this,
i = 0;
this.images = document.querySelectorAll(obj.images);
this.rate = obj.rate;
this.auto = obj.auto;
this.next = function() {
slider.images[i].classList.remove('showed');
i++;
if (i>=slider.images.length) {
i = 0;
}
slider.images[i].classList.add('showed');
}
if (slider.auto) {
setInterval(slider.next, slider.rate);
}
};
new Slider({
images:'.gallery img',
rate: 1000,
auto: true,
});
сверху рабочий))))))))
переписал 1-й вариант, вот так:
class Timer {
constructor(obj) {
this.images = document.querySelectorAll(obj.images);
this.rate = obj.rate || 1500;
this.auto = obj.auto;
this.run();
let i = 0;// здесь var наверно, если что... let не увидит...
}
btnNext(){
let i = 0;
this.images[i].classList.remove('showed');
i++;
if(i >= this.images.length) {
i = 0;
}
this.images[i].classList.add('showed');
}
run() {
if(this.auto){
setInterval(this.btnNext,this.rate);
}
}
};
new Timer({
images: '.photos img',
rate: 1000,
auto: true,
});
переписал еще раз........ теперь вопрос в стр: 7 и стр: 11, куда и как поставить счетчик?......, или, еще где-то, таймер работает, не может прочитать 0 не найден......тут должен, типа быть массив, или в объекте.. короче, запутался))))
кстати, убрал: let slider = this, дело пошло, это костыль какой-то?