Как сделать слайдер с наложением слайдов поверх других слайдов?
Ответы (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/
