Как на страницу вставить одинаковые swiper галереи?
Как вставить много одинаковых swiper галерей на одну страницу, не конфликтуя друг с другом?
Пример codepen.io/qamos/pen/ExEYwYm
если на странице таких слайдеров 50 штук, одинаковых.. каждый отдельно вызывать в скриптах не вариант
Ответы (1 шт):
Автор решения: soledar10
→ Ссылка
Пример
const wrapper = document.querySelectorAll(".wrapper");
wrapper.forEach((item) => {
const top = item.querySelector(".gallery-top");
const thumbs = item.querySelector(".gallery-thumbs");
const galleryTop = new Swiper(top, {
spaceBetween: 10,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
loop: true,
loopedSlides: 4
});
const galleryThumbs = new Swiper(thumbs, {
spaceBetween: 10,
centeredSlides: true,
slidesPerView: "auto",
touchRatio: 0.2,
slideToClickedSlide: true,
loop: true,
loopedSlides: 4
});
galleryTop.controller.control = galleryThumbs;
galleryThumbs.controller.control = galleryTop;
});
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
.wrapper {
height: 200px;
margin-bottom: 2rem;
border: 2px solid #00f;
}
.swiper-container {
width: 100%;
height: 300px;
margin: 20px auto;
}
.swiper-slide-container {
text-align: center;
font-size: 18px;
background: #fff;
height: 100%;
max-width: 600px;
margin: auto;
/* Center slide text vertically */
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
.gallery-top {
height: 80%;
width: 100%;
}
.gallery-thumbs {
height: 20%;
box-sizing: border-box;
padding: 10px 0;
}
.gallery-thumbs .swiper-slide {
width: 20%;
height: 100%;
opacity: 0.4;
}
.gallery-thumbs .swiper-slide-active {
opacity: 1;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.3/js/swiper.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.3/css/swiper.min.css" rel="stylesheet" />
<body>
<div class="wrapper">
<div class="swiper-container gallery-top">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 3</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 4</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 5</div>
</div>
</div>
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<div class="swiper-container gallery-thumbs">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 3</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 4</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 5</div>
</div>
</div>
</div>
</div>
<div class="wrapper">
<div class="swiper-container gallery-top">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 3</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 4</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 5</div>
</div>
</div>
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<div class="swiper-container gallery-thumbs">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 3</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 4</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 5</div>
</div>
</div>
</div>
</div>
<div class="wrapper">
<div class="swiper-container gallery-top">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 3</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 4</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 5</div>
</div>
</div>
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<div class="swiper-container gallery-thumbs">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 1</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 2</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 3</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 4</div>
</div>
<div class="swiper-slide">
<div class="swiper-slide-container">Slide 5</div>
</div>
</div>
</div>
</div>
</body>