OldSchool1705
@OldSchool1705
I want to become a programmer

Как сделать что бы Swiper с одинаковыми классами работали от одного скрипта?

Есть много слайдеров на 1 странице с одинаковыми классами, как сделать что бы они все работали? выдает ошибку swiper.esm.bundle.js:7539 Uncaught TypeError: Cannot read properties of null (reading '$el')

import Swiper from "swiper";
document.addEventListener("DOMContentLoaded", () => {

  const swiper2 = new Swiper(".mySwiper3", {
    loop: true,
    spaceBetween: 30,
    slidesPerView: 4,
    freeMode: true,
    watchSlidesProgress: true,
    observer: true,
    observeParents: true,
  });

  const swiper1 = new Swiper(".mySwiper2", {
    loop: true,
    spaceBetween: 10,
    observer: true,
    observeParents: true,
    navigation: {
      nextEl: ".swiper-button-next",
      prevEl: ".swiper-button-prev",
    },
    thumbs: {
      swiper: swiper2,
    },
  });
});
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
neuotq
@neuotq
Прокрастинация
Swiper и подобные обычно вешаются на уникальный DOM элемент и потом возвращают объект, который ему соответствует. Вам тогда нужно просто пройти по всем элементам класса и повесить на каждый Swiper.
//Получим все ноды у которых есть класс swiper
let swiperNodes = document.getElementsByClassName("swiper");
//Пройдемся по ним и повесим свайпер
for (let i = 0; i < swiperNodes.length; i++) {
   new Swiper(swiperNodes[i] , {
     speed: 400,
     spaceBetween: 100,})
//...
}

Ну примерно так.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы