Создание красивого слайдера с анимацией в CSS предполагает использование свойств CSS, таких как overflow
, position
, transform
и animation
. Вот пример стилизации слайдера:
HTML:
<div class="slider">
<div class="slide active">
<img src="slide1.jpg" alt="Slide 1">
<div class="slide-caption">
<h2>Slide 1</h2>
<p>Some text here</p>
</div>
</div>
<div class="slide">
<img src="slide2.jpg" alt="Slide 2">
<div class="slide-caption">
<h2>Slide 2</h2>
<p>Some text here</p>
</div>
</div>
<div class="slide">
<img src="slide3.jpg" alt="Slide 3">
<div class="slide-caption">
<h2>Slide 3</h2>
<p>Some text here</p>
</div>
</div>
</div>
CSS:
.slider {
width: 100%;
height: 400px;
position: relative;
overflow: hidden;
}
.slide {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity 0.5s;
}
.slide.active {
opacity: 1;
}
.slide img {
max-width: 100%;
height: auto;
}
.slide-caption {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
color: #fff;
z-index: 1;
animation-name: caption-animation;
animation-duration: 1s;
animation-fill-mode: forwards;
opacity: 0;
transition: opacity 0.5s;
}
.slide.active .slide-caption {
opacity: 1;
}
.slide-caption h2 {
font-size: 2rem;
margin-bottom: 0.5rem;
}
.slide-caption p {
font-size: 1rem;
}
@keyframes caption-animation {
from {
transform: translate(-50%, -40%);
opacity: 0;
}
to {
transform: translate(-50%, -50%);
opacity: 1;
}
}
В этом примере мы использовали свойство position: relative
для контейнера слайдера и overflow: hidden
, чтобы скрыть все слайды, кроме активного, которые будут показаны пользователю. position: absolute
было применено ко всем слайдам для создания эффекта перекрытия их друг друга.
Фоновое изображение каждого слайда было задано через тег img
. Текстовые элементы (h2
, p
) были помещены в блок .slide-caption
, который был выровнен по центру каждого слайда с помощью свойства transform
.
Анимация текста была создана через CSS-анимацию с помощью animation-name
, animation-duration
и animation-fill-mode
. В нашем примере мы использовали opacity
для плавного появления и исчезновения элементов.
Наконец, мы добавили некоторый JavaScript код для переключения активного слайда. Код может выглядеть примерно так:
var slides = document.getElementsByClassName('slide');
var currentIndex = 0;
setInterval(function() {
slides[currentIndex].classList.remove('active');
currentIndex++;
if (currentIndex === slides.length) {
currentIndex = 0;
}
slides[currentIndex].classList.add('active');
}, 5000);
Этот код будет переключать слайды каждые 5 секунд (5000 миллисекунд) и переключает класс .active
между активным и неактивным слайдами.