Создадим красивую анимацию с помощью чистого CSS3, без использования дополнительных библиотек. Анимация будет запускаться при наведении курсора на картинку. Код будет доступен для просмотра в действии.
Подготовка к работе
Для работы потребуется текстовый редактор. Создайте папку 3w, внутри неё файлы index.html и папку css с файлом main.css. Оба файла пока пусты.
Создание HTML-разметки
Создадим базовую структуру HTML:
<!DOCTYPE html>
<html>
<head>
<title>CSS 3D Анимация</title>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div class="main">
<img src="img/mobile.png" alt="iPhone">
<img src="img/mobile.png" alt="iPhone">
<img src="img/mobile.png" alt="iPhone">
<img src="img/mobile.png" alt="iPhone">
</div>
</body>
</html>
Создайте папку img и поместите в неё картинку mobile.png (скриншот экрана iPhone).
Написание CSS-стилей
Перейдём к файлу main.css. Сначала определим стили для контейнера .main:
.main {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh; /* 100% высоты экрана */
margin: 0;
padding: 0;
background-color: black;
}
Далее стили для изображения:
.main img {
width: 750px;
height: 1334px;
transform: scale(0.5) rotate(-30deg) perspective(25deg);
position: absolute;
width: 100%;
transition: 0.5s;
}
Добавим анимацию при наведении курсора на последнее изображение:
.main img:last-child:hover {
transform: translate(160px, -160px) scale(1);
opacity: 1;
}
Для остальных изображений создадим аналогичные стили, изменяя значения transform и opacity для создания эффекта многослойности:
.main img:nth-last-child(2):hover { /* Третье изображение */
transform: translate(120px, -120px) scale(0.8);
opacity: 0.8;
}
.main img:nth-last-child(3):hover { /* Второе изображение */
transform: translate(80px, -80px) scale(0.6);
opacity: 0.6;
}
.main img:first-child:hover { /* Первое изображение */
transform: translate(40px, -40px) scale(0.4);
opacity: 0.4;
}
Для более выразительного эффекта можно изменить значения translate, scale и opacity. Также можно изменить цвет фона на transparent.
Размещение проекта
Загрузите файлы index.html, main.css и mobile.png на ваш хостинг.
Мы создали красивую 3D-анимацию, используя только CSS3. Код доступен для просмотра и использования.