Как сделать слайдер с наложением слайдов поверх других слайдов?

введите сюда описание изображения

Как можно реализовать подобный слайдер с наложением двух слайдов под средний?


Ответы (1 шт):

Автор решения: DiD

Вот так?

  const myCarousel = new Carousel({
  container: document.querySelector('.slider'),
  items: document.querySelectorAll('.slider__item'),
  displayControls: true,
  controlsContainer: document.querySelector('.slider__controls'),
  textControls: ["<i class='fas fa-chevron-left'></i>", "<i class='fas fa-chevron-right'></i>"],
  autoplay: true,
  autoplayTime: 3500
});
  body {
  width: 100vw;
  min-height: 100vh;
  overflow-x: hidden;
}

.slider {
  position: relative;
  width: 100%;
  max-width: 100%;
}
.slider .slider__inner {
  display: flex;
  position: relative;
  align-items: center;
  max-width: 750px;
  height: 400px;
  margin: 0 auto;
}
.slider .slider__inner .slider__item {
  position: absolute;
  height: 150px;
  width: 150px;
  opacity: 0;
  transition: all 0.3s ease-in-out;
  z-index: -1;
  pointer-events: none;
  user-select: none;
}
.slider .slider__inner .slider__item-trigger-next {
  left: 15%;
  transform: translateX(-50%);
}
.slider .slider__inner .slider__item-trigger-previous {
  left: 85%;
  transform: translateX(-50%);
}
.slider .slider__inner .slider__item-selected {
  box-shadow: 0 0 30px #000a, 0 0 60px #0007, 0 0 110px #0004, 0 0 100px #0001;
  height: 300px;
  opacity: 1;
  left: 50%;
  transform: translateX(-50%);
  width: 300px;
  z-index: 2;
}
.slider .slider__inner .slider__item-previous, .slider .slider__inner .slider__item-next {
  height: 200px;
  opacity: 1;
  width: 200px;
  z-index: 1;
}
.slider .slider__inner .slider__item-last, .slider .slider__inner .slider__item-first {
  opacity: .4;
  z-index: 0;
}
.slider .slider__inner .slider__item-previous {
  left: 30%;
  transform: translateX(-50%);
}
.slider .slider__inner .slider__item-next {
  left: 70%;
  transform: translateX(-50%);
}
.slider .slider__inner .slider__item-first {
  left: 15%;
  transform: translateX(-50%);
}
.slider .slider__inner .slider__item-last {
  left: 85%;
  transform: translateX(-50%);
}
.slider .slider__inner .slider__item-container {
  position: relative;
  width: 100%;
  height: 100%;
}
.slider .slider__inner .slider__item-img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.slider .slider__inner .slider__item-datas {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: .5rem 0;
  background-color: #0008;
  text-align: center;
  font-family: 'Arial';
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #fff;
  text-shadow: 1px 1px 1px #000;
}
.slider .slider__controls {
  display: flex;
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 750px) {
  .slider .slider__controls {
    display: none;
  }
}
.slider .slider__controls-previous, .slider .slider__controls-next {
  border: 0;
  cursor: pointer;
  font-size: 50px;
  background-color: transparent;
  color: rgba(0, 0, 0, 0.75);
  padding: 0;
}
.slider .slider__controls-previous:focus, .slider .slider__controls-next:focus {
  outline: none;
}
body {background: #000;}
h1 { margin: 150px auto 30px auto; text-align: center; }
<script src="https://www.cssscript.com/demo/3d-carousel-slider-overflow/carousel.js"></script>
<div class="slider">
  <div class="slider__inner">
    <div class="slider__item">
     <div class="slider__item-container">
        <img src="https://unsplash.com/photos/0KaTrsWvoJE/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
      <div class="slider__item-container">
        <img src="https://unsplash.com/photos/pb_lF8VWaPU/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
     <div class="slider__item-container">
        <img src="https://unsplash.com/photos/kylL5DcscOA/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
      <div class="slider__item-container">
        <img src="https://unsplash.com/photos/O14gL2ZXStw/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
      <div class="slider__item-container">
        <img src="https://unsplash.com/photos/1ae1taOtvTE/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
      <div class="slider__item-container">
        <img src="https://unsplash.com/photos/J7xrBW_oYJc/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
      <div class="slider__item-container">
        <img src="https://unsplash.com/photos/01voTCIdeWw/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span>Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__item">
      <div class="slider__item-container">
        <img src="https://unsplash.com/photos/w33-zg-dNL4/download?force=true&w=640" class="slider__item-img"/>
        <div class="slider__item-datas">
          <span class="slider__item-datas__text">Lorem Ipsum Dolores</span>
        </div>
      </div>
    </div>
    <div class="slider__controls"></div>
  </div>
</div>

Подробнее тут: https://www.cssscript.com/3d-carousel-Slider-overflow/

→ Ссылка