Здравствуйте. Нужно реализовать слайдер, который работает таким образом:
Пользователь зашел на страницу и скролит вниз, когда он доходит до слайдера и продолжает скролить, то пролистывается слайдер пока не достигнет последнего айтема, и только после этого идет скролл самой страницы.
Видел, предлагают сделать с помощью библиотеки SCROLLMAGIC, но сам код не нашёл, не представляю, как это сделать
Код слайдера:
HTML
spoiler
<section id="projects" class="projects">
<div class="container-2">
<div class="itcss">
<div class="itcss__wrapper">
<div class="itcss__items">
<div class="itcss__item">
<img src="img/projects.jpg">
</div>
<div class="itcss__item">
<img src="img/14_BathCorner_MG_7028.jpg">
</div>
</div>
</div>
<button class="itcss__btn itcss__btn_prev" role="button" data-slide="prev"></button>
<button class="itcss__btn itcss__btn_next" role="button" data-slide="next"></button>
</div>
</div>
</section>
CSS
spoiler
.projects {
margin: auto;
margin-top: 112px;
width: 1200px;
min-height: 667px;
overflow: hidden;
}
.itcss {
position: relative;
max-width: 1200px;
}
/* стили для wrapper */
.itcss__wrapper {
position: relative;
overflow: hidden;
background-color: white;
}
/* стили для элемента, в котором непосредственно расположены элементы (слайды) */
.itcss__items {
display: flex;
transform-style: preserve-3d;
backface-visibility: hidden;
transition: transform 0.5s ease;
will-change: transform;
}
/* стили для элементов */
.itcss__item {
position: relative;
flex: 0 0 100%;
max-width: 100%;
transform-style: preserve-3d;
backface-visibility: hidden;
will-change: transform;
}
/* кнопки Prev и Next */
.itcss__btn {
position: absolute;
top: 50%;
display: flex;
justify-content: center;
align-items: center;
width: 3rem;
height: 4rem;
color: #fff;
background: rgb(0 0 0 / 10%);
border: none;
outline: none;
transform: translateY(-50%);
cursor: pointer;
opacity: 0.5;
user-select: none;
}
.itcss__btn_hide {
display: none;
}
.itcss__btn:hover,
.itcss__btn:focus {
color: #fff;
text-decoration: none;
border: none;
opacity: 0.7;
}
.itcss__btn_prev {
left: 0;
}
.itcss__btn_next {
right: 0;
}
.itcss__btn::before {
content: "";
display: inline-block;
width: 2rem;
height: 2rem;
background: transparent no-repeat center center;
background-size: 100% 100%;
}
.itcss__btn_prev::before {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
}
.itcss__btn_next::before {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
/* класс для отключения transition */
.transition-none {
transition: none;
}
.itcss__items {
counter-reset: slide;
}
.itcss__item {
counter-increment: slide;
}
.itcss__item>div::before {
content: counter(slide);
position: absolute;
top: 10px;
right: 20px;
color: #fff;
font-style: italic;
font-size: 32px;
font-weight: bold;
}
.itcss__item img {
border: 1px solid var(--main-color);
}
JavaScript
https://drive.google.com/file/d/1U4ZKO6aXrTWZwadM3...