evgeniy8705
@evgeniy8705
Повелитель вселенной

Как пофиксить пагинацию в слайдере?

Пытался сделать слайдер. Вроде как все получилось. Вот только пагинацию не до конца получается сделать.
При переключении слайдов при помощи стрелок в диапазоне от 1 до последнего и обратно, все нормально работает, активный слайд выделяется, а вот если например переключиться в право после последнего, то сам слайд меняется на первый, а вот в пагинации это никак не отмечается, активный элемент не выделяется. Как это пофиксить?

Вот функции выделения активного элемента и переключения слайдов:
this._activate = function() {
    paginationNode.querySelector(".active").classList.remove("active");
    paginationNode.children[currentSlideIndex].querySelector("a").classList.add("active");
}

this.prevSlide = function() {
    if (currentSlideIndex == 0) {
        currentSlideIndex = countImages - 1;
        return;
    }

    currentSlideIndex--;
    _self._activate();
};

this.nextSlide = function() {
    if (currentSlideIndex == countImages - 1) {
        currentSlideIndex = 0;
        return;
    }

    currentSlideIndex++;
    _self._activate();
};


Пробовал добавить функцию выделения активного элемента в проверку (если последний то....если первый то...), но так ничего не работает, вообще слайды не переключаются...

Вот демка - codepen.io/evg_/pen/XKgkkg
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
Bellicus
@Bellicus
И швец, и жнец, и на дуде игрец.
this.prevSlide = function() {
    if (currentSlideIndex == 0) {
      currentSlideIndex = countImages - 1;
      _self._activate();
      return;
    }

    currentSlideIndex--;
    _self._activate();
  };

  this.nextSlide = function() {
    if (currentSlideIndex == countImages - 1) {
      currentSlideIndex = 0;
      _self._activate();
      return;
    }

    currentSlideIndex++;
    _self._activate();
  };
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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