Для создания слайдера, похожего на слайдер в Steam, с использованием Swiper, вы можете следовать следующему подходу. Мы будем создавать два связанных слайдера: основной слайдер для отображения крупного изображения и слайдер для миниатюрных превью. Основная задача — управлять взаимодействием между слайдерами так, чтобы прокрутка миниатюр не переключала основной слайдер, а нажатие на стрелки или миниатюры — переключало.
### Шаг 1: Установка Swiper
Убедитесь, что вы установили библиотеку Swiper. Вы можете использовать npm или просто подключить CDN:
```html
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" />
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
```
### Шаг 2: HTML
```html
<div class="swiper-container main-slider">
<div class="swiper-wrapper">
<div class="swiper-slide">Слайд 1</div>
<div class="swiper-slide">Слайд 2</div>
<div class="swiper-slide">Слайд 3</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<div class="swiper-container thumbnails-slider">
<div class="swiper-wrapper">
<div class="swiper-slide">Миниатюра 1</div>
<div class="swiper-slide">Миниатюра 2</div>
<div class="swiper-slide">Миниатюра 3</div>
</div>
</div>
```
### Шаг 3: CSS
Для базового стиля вы можете использовать следующий CSS (можно настроить под ваш дизайн):
```css
.swiper-container {
width: 100%;
height: 300px;
}
.thumbnails-slider {
height: 100px;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #009688;
display: flex;
justify-content: center;
align-items: center;
color: white;
}
```
### Шаг 4: JavaScript
Теперь давайте настроим слайдеры и их взаимосвязь:
```javascript
const mainSlider = new Swiper('.main-slider', {
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
on: {
slideChange: function () {
// Если основной слайдер изменяется, обновляем миниатюры
thumbnailsSlider.slideTo(this.activeIndex);
},
},
});
const thumbnailsSlider = new Swiper('.thumbnails-slider', {
spaceBetween: 10,
slidesPerView: 3,
// дополнительный параметр, чтобы можно было кликать на миниатюры
slideToClickedSlide: true,
});
// синхронизация:
thumbnailsSlider.on('click', function () {
const clickedIndex = thumbnailsSlider.clickedIndex;
mainSlider.slideTo(clickedIndex);
});
```
### Шаг 5: Прокрутка
Чтобы прокрутка миниатюр не переключала основной слайдер, вы можете использовать событие `touchMove` для отключения касания, если оно происходит внутри миниатюр. Попробуйте следующее:
```javascript
thumbnailsSlider.on('touchMove', function (e) {
e.stopPropagation(); // Остановить дальнейшую обработку события
});
```
Теперь ваши слайдеры будут взаимодействовать так, как вы хотите. Прокрутка миниатюр не будет переключать основной слайдер, но при нажатии на миниатюры или стрелки слайдер будет переключаться соответственно. Это позволит вам достичь поведения, аналогичного тому, что есть в Steam.