@ivansimonov1984

Как исправить код, чтобы заработали два и более слайдеров?

Создал простой слайдер на javascript - Fiddle.
Но если добавить в html еще один такой слайдер, 2 слайдер не работает - Fiddle.

Как вариант, можно задать новый классы, и прописать новый код для javascript, но это скорее всего неправильное решение.
Подскажите, как правильно поступать в данном случае?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Добавьте параметр - селектор корневого элемента слайдера (или сам элемент). Поиск слайдов и кнопок выполняйте не по всему документу, а внутри корневого элемента.

function simpleSlider(element) {
  const root = typeof element === 'string'
    ? document.querySelector(element)
    : element;

  const items = root.querySelectorAll('.slider__item');
  const prev = root.querySelector('.slider__btn-prev');
  const next = root.querySelector('.slider__btn-next');

  let index = 0;

  function slideTo(newIndex) {
    items[index].classList.remove('slider__item--active');
    index = (newIndex + items.length) % items.length;
    items[index].classList.add('slider__item--active');
  }

  prev.addEventListener('click', () => slideTo(index - 1));
  next.addEventListener('click', () => slideTo(index + 1));
}

simpleSlider('#slider1');
simpleSlider(document.querySelector('#slider2'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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