SliderVC
/
style.css
262 строки · 5.1 Кб
1:root {2--z-distance: $item-width / 7.63;3--from-left: 1;4--mobile-bkp: $mobile-bkp;5}
6*,
7*::before,
8*::after {9box-sizing: border-box;10}
11body {12min-height: 100vh;13margin: 0;14padding: 0;15overflow: hidden;16font-family: Lora, serif;17font-size: calc(14px + 0.3vw);18}
19.slider {20width: 100vw;21height: 100vh;22display: flex;23perspective: 1000px;24transform-style: preserve-3d;25}
26.slider::before,
27.slider::after {28content: "";29left: -1vw;30top: -1vh;31display: block;32position: absolute;33width: 102vw;34height: 102vh;35background-position: center;36background-size: cover;37will-change: opacity;38z-index: -1;39box-shadow: 0 0 0 50vmax hsla(0deg, 50%, 0%, 0.7) inset;40}
41.slider::before {42background-image: var(--img-prev);43}
44.slider::after {45transition: opacity 0.7s;46opacity: 0;47background-image: var(--img-next);48}
49.slider--bg-next::after {50opacity: 1;51}
52.slider__content {53margin: auto;54width: 85vw;55height: 75vw;56max-height: 75vh;57will-change: transform;58transform-style: preserve-3d;59transform: translateZ(var(--z-distance));60}
61.slider__images {62overflow: hidden;63position: absolute;64width: 100%;65height: 100%;66z-index: 0;67box-shadow: 0 0 5em #000;68}
69.slider__images-item {70position: absolute;71top: 0;72left: 0;73height: 100%;74width: 100%;75will-change: transform;76transition-timing-function: ease-in;77visibility: hidden;78}
79.slider__images-item img {80display: block;81position: relative;82left: -1em;83top: -1em;84width: calc(100% + 1em * 2);85height: calc(100% + 1em * 2);86object-fit: cover;87will-change: transform;88}
89.slider__images-item--active {90z-index: 20;91visibility: visible;92}
93.slider__images-item--subactive {94z-index: 15;95visibility: visible;96}
97.slider__images-item--next {98transform: translateX(100%);99}
100.slider__images-item--prev {101transform: translateX(-100%);102}
103.slider__images-item--transit {104transition: transform 0.7s, opacity 0.7s;105}
106.slider__text-item {107padding: 0.5em;108}
109.slider__text-item > * {110overflow: hidden;111position: absolute;112}
113.slider__text-item h3,
114.slider__text-item p {115transition: transform 0.35s ease-out;116overflow: hidden;117}
118.slider__text-item h3 {119background-color: hsla(0deg, 50%, 100%, 0.5);120}
121.slider__text-item p {122font-family: "Open Sans", sans-serif;123padding: 1em;124color: white;125text-align: center;126background-color: hsla(0deg, 0%, 0%, 0.5);127}
128.slider__text-item h3::before,
129.slider__text-item p::before {130content: "";131position: absolute;132top: 0;133left: 0;134width: 100%;135height: 100%;136transform: translateX(0);137transition: transform 0.35s ease-out 0.28s;138}
139.slider__text-item h3::before {140background-color: #000;141left: 1px;142}
143.slider__text-item p::before {144background-color: #fff;145left: -1px;146}
147.slider__text-item h3 {148margin: 0;149font-size: 3.5em;150padding: 0 0.3em;151position: relative;152font-weight: 700;153transform: translateX(-100%);154}
155.slider__text-item p {156margin: 0;157transform: translateX(100%);158}
159.slider__text-item-head {160top: -0.5em;161transform: translateZ(3em);162}
163.slider__text-item-info {164bottom: -10px;165right: -10px;166max-width: 75%;167min-width: min-content;168transform: translateZ(2em);169}
170.slider__text-item--active h3,
171.slider__text-item--active p {172transform: translateX(0);173}
174.slider__text-item--active h3::before {175transform: translateX(100%);176}
177.slider__text-item--active p::before {178transform: translateX(-100%);179}
180.slider__text-item--backwards h3::before,
181.slider__text-item--backwards p::before {182transition: transform 0.35s ease-in;183}
184.slider__text-item--backwards h3,
185.slider__text-item--backwards p {186transition: transform 0.35s ease-in 0.35s;187}
188.slider__nav {189position: absolute;190width: 100%;191top: 85%;192text-align: center;193}
194.slider__nav-dots {195margin-top: 5vh;196display: inline-flex;197position: relative;198padding: 1em;199}
200.slider__nav-dots::before {201content: "";202position: absolute;203left: calc(1em + 1em + 2px);204top: calc(1em + 2px);205width: calc(2em - 2px * 2);206height: calc(1em / 2 - 2px * 2);207background-color: hsla(0deg, 50%, 100%, 0.9);208transition: transform 0.7s ease-out;209transform: translateX(calc((2em + 1em * 2) * (var(--from-left) - 1)));210}
211.slider__nav-dot {212margin: 0 1em;213width: 2em;214height: 0.5em;215border: 2px solid hsla(0deg, 50%, 100%, 0.5);216}
217.slider__nav-dot:hover {218border-color: hsla(0deg, 50%, 100%, 0.7);219}
220.slider__nav-dot:active {221border-color: hsla(0deg, 50%, 100%, 0.5);222}
223.slider__move-left {224content: " ";225position: absolute;226z-index: 9;227width: 10vw;228height: 80vw;229max-height: 80vh;230left: 50%;231margin-left: -50%;232top: 10%;233background: transparent;234transition: 1s;235color: transparent;236display: flex;237align-items: center;238justify-content: center;239user-select: none;240}
241.slider__move-left:hover {242color: #8285808c;243}
244.slider__move-right {245position: absolute;246z-index: 9;247width: 10vw;248height: 1000vw;249max-height: 80vh;250left: 90%;251top: 10%;252background: transparent;253transition: 1s;254color: transparent;255display: flex;256align-items: center;257justify-content: center;258user-select: none;259}
260.slider__move-right:hover {261color: #8285808c;262}
263