`JS` логика слайдера

Рейтинг: 0Ответов: 1Опубликовано: 17.02.2023

JS логика слайдера.

После нажатия на indicator переменная "i" обнуляется, а должна продолжаться с того же места. Почему не работает как задумано?

Более подробно и на примере по ссылке на песочницу. Cмотреть в консоль на изменение "i"

let indicators = document.querySelector('.indicators');

let i = 0;
let interval = 1000;
let slidesCount = 5 // по умолчанию

function slider() {
  i = (i + 1 + slidesCount) % slidesCount;
  console.log(`next ${i}`);
}

setInterval(slider, interval);

indicators.addEventListener('click', function (element) {
  if (element.target) {
    let number = element.target.getAttribute('data-slide-to');
    if (i != number) {
      i = number
      console.log(`indicator ${i}`);
    }
  }
})

Ответы

▲ 0

Вылечил обернув значение переменной в parseInt

let number = parseInt(e.target.getAttribute('data-slide-to'));

И всё стало работать как и было задумано. В общем ошибка была в типизации переменных и взаимодействиях с ними.