Как анимировать радужное сердце из квадрата с помощью CSS?
В этой статье вы узнаете, как сделать волшебное сердце, используя только CSS. Анимации в CSS — увлекательная часть CSS. Мы будем создавать сердце, которое меняет цвет каждые 3 секунды. Мы будем создавать анимацию в два этапа.
1. Построение сердца. На этом этапе мы будем строить форму сердца.
Сначала мы создадим в теле два раздела с классами Square и container . Затем в файле style.css мы добавим некоторые общие стили тела и класса, чтобы центрировать весь контент. Затем мы создадим два круга, используя селекторы :before и : after и используя свойство border-radius , чтобы сделать его кругом.
Это создаст форму сердца, которое будет анимировано на следующем шаге. Код ниже демонстрирует код HTML и CSS.
HTML-файл:
HTML
<!DOCTYPE html> < html > < head > < link rel = "stylesheet" href = "style.css" /> </ head > < body > < div class = "container" > < div class = "square" ></ div > </ div > </ body > </ html > |
CSS-файл:
CSS
* { margin : 0% ; padding : 0% ; box-sizing: border-box; } .container { width : 100 vw; height : 100 vh; background-color : black ; display : grid; place-items: center ; align-items: center ; } . square { width : 10 rem; height : 10 rem; background-color : orange; position : relative ; transform: rotate( 45 deg); } /* Draw one of the circles */ .square::before { content : "" ; width : 100% ; height : 100% ; background-color : green ; position : absolute ; border-radius: 50% ; transform: translateY( -50% ); } /* Draw another of the circles */ .square::after { content : "" ; width : 100% ; height : 100% ; background-color : pink; position : absolute ; border-radius: 50% ; transform: translateX( -50% ); } |
Примечание. На данный момент для рисования кругов используются два разных цвета, чтобы вы могли лучше понять, но в окончательной программе мы возьмем один и тот же цвет для двух кругов и квадрата.
Выход:
Мы можем сделать круги разных цветов, чтобы их было легко различить. Если мы сделаем все цвета одинаковыми, результат будет таким, как показано ниже:
2. Анимация сердца. На этом этапе мы добавляем анимацию сердца.
Мы будем использовать два набора анимации для сердца. Одно — это движение сердца, а другое — изменение цвета. Мы будем использовать ключевые кадры для определения анимации. Цвета сердца будут определены в каждом из ключевых кадров по мере необходимости. Это будет переключать цвета сердца на протяжении всей анимации.
Движение сердца при переходе от квадрата к сердцу можно добавить с помощью свойства трансформации в одном из ключевых кадров. Это вызовет преобразование из квадрата в форму сердца.
Полная программа
HTML
<!DOCTYPE html> < html > < head > < style > * { margin: 0%; padding: 0%; box-sizing: border-box; } .container { width: 100vw; height: 100vh; background-color: black; display: grid; place-items: center; align-items: center; } .square { width: 10rem; height: 10rem; background-color: pink; position: relative; transform: rotate(45deg); animation: beater 3s linear infinite; } .square::before { content: ""; width: 100%; height: 100%; background-color: pink; position: absolute; border-radius: 50%; transform: translateY(-50%); animation: beater 3s linear infinite; } .square::after { content: ""; width: 100%; height: 100%; background-color: pink; position: absolute; border-radius: 50%; transform: translateX(-50%); animation: beater 3s linear infinite; } /* Define the keyframes for the animation */ @keyframes beater { 0% { background: red; } 15% { background: orange; } 30% { transform: scale(0.5); background: yellow; } 45% { background: greenyellow; } 60% { background: blue; } 75% { background: indigo; } 100% { background: violet; } } </ style > </ head > < body > < div class = "container" > < div class = "square" ></ div > </ div > </ body > </ html > |
Выход: