Фоновая анимация волн
Начальное состояние: базовые стили для html
и body
, сбрасывающие отступы. Стили для section
, задающие положение, размеры и фон. Заголовок h1
расположен на 20% сверху и имеет базовые стили.
Задаём элементам .wave
абсолютное позиционирование, располагаем их в контейнере внизу и слева. Добавляем временную обводку.
Устанавливаем ширину .wave
на 100%, чтобы он занимал всю ширину экрана.
Устанавливаем высоту .wave
на 20vh
, чтобы он занимал 20% от высоты окна браузера.
Добавляем фоновое изображение для .wave
с помощью свойства background
. Фоновое изображение — это изображение волны (wave.png).
Настраиваем размер фонового изображения с помощью background-size
, чтобы изображение заполнило всю ширину окна 100vw
и высоту 20vh
.
Добавляем первой волне класс .wave1
. Он позиционируется внизу и накладывается на другие волны благодаря z-index: 15
.
Добавляем для .wave1
прозрачность 0.9
, чтобы сделать её слегка прозрачной. Это поможет создать эффект наложения нескольких волн друг на друга.
Добавляем анимацию для .wave1
. Она будет плавно двигаться в течение 20 секунд с бесконечным циклом и задержкой начала анимации в 0 секунд.
Добавляем описание анимации @keyframes animate
. Анимация меняет позицию фона по горизонтали от 0 до 100vw, создавая движение волны.
Добавляем в разметку вторую волну .wave2
и задаём для неё стили. Она будет находиться под первой волной из-за z-index: 10
и смещена вверх из-за bottom: 10px
.
Задаём для .wave2
свойство opacity
и параметры анимации. Это создаст эффект движения для второй волны.
Добавляем новый ключевой кадр animate2
для создания анимации движения второй волны в противоположном направлении.
Добавляем в разметку третью волну и задаём для неё стили. Располагаем её под первыми двумя волнами, по вертикали смещаем ещё выше, делаем её ещё прозрачнее. Анимация движения будет в том же направлении, что и у первой волны, но с другой задержкой.
Добавляем в разметку четвёртую волну и задаём ей стили. Эффект анимированного фона с волнами готов.
Экспериментируйте с кодом, меняйте параметры анимации, добавляйте больше волн и делитесь результатом с друзьями.