Загрузка...
Загрузка...
CSS предоставляет два подхода для создания визуальных эффектов:
transition) — для простых эффектов (при наведении, фокусе и т. д.)@keyframes + animation) — для сложных и многошаговых эффектовПозволяет задать параметры перехода.
.element {
transition: all 0.3s ease-in-out;
}
Указывает, какие свойства будут анимироваться (например, opacity, transform).
transition-property: opacity, transform;
Длительность перехода (в секундах или миллисекундах).
transition-duration: 0.5s;
Кривая изменения (ускорение/замедление).
| Значение | Поведение |
|---|---|
linear | Равномерно |
ease | Старт быстро → замедление |
ease-in | Медленно → быстро |
ease-out | Быстро → медленно |
ease-in-out | Медленно → быстро → медленно |
cubic-bezier() | Своя кривая анимации |
Задержка перед началом перехода.
transition-delay: 0.2s;
Определяет шаги анимации.
@keyframes slideIn {
from {
transform: translateX(-100%);
}
to {
transform: translateX(0);
}
}
Имя анимации (должно совпадать с ключевыми кадрами).
animation-name: slideIn;
Время анимации.
animation-duration: 1s;
Кривая скорости анимации.
animation-timing-function: ease-in-out;
Задержка перед началом.
animation-delay: 0.3s;
Сколько раз повторять (например, infinite, 1, 3).
animation-iteration-count: infinite;
Направление: normal, reverse, alternate, alternate-reverse.
animation-direction: alternate;
Определяет стили до и после анимации:
| Значение | Описание |
|---|---|
none | По умолчанию |
forwards | Сохраняет финальные стили |
backwards | Применяет начальные стили до старта |
both | Совмещает forwards и backwards |
<button class="hack-btn">Hack Frontend</button>
.hack-btn {
background-color: #1a1a1a;
color: #0f0;
border: 2px solid #0f0;
padding: 12px 24px;
font-family: monospace;
font-size: 18px;
position: relative;
cursor: pointer;
text-transform: uppercase;
letter-spacing: 2px;
overflow: hidden;
transition: all 0.3s ease;
}
.hack-btn:hover {
background-color: #0f0;
color: #1a1a1a;
box-shadow: 0 0 15px #0f0;
}
.hack-btn::before,
.hack-btn::after {
content: 'Hack Frontend';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
}
@keyframes glitch {
0% {
transform: translate(0);
opacity: 0;
}
20% {
transform: translate(-5px, 5px);
opacity: 0.3;
color: #ff0000;
}
40% {
transform: translate(5px, -5px);
opacity: 0.3;
color: #00ffff;
}
60% {
transform: translate(0);
opacity: 0;
}
100% {
transform: translate(0);
opacity: 0;
}
}
.hack-btn:hover::before {
animation: glitch 1s infinite;
}
.hack-btn:hover::after {
animation: glitch 1s infinite reverse;
}
Совет:
Используйте transition для простых и интерактивных эффектов, а animation — для сложных, заранее спланированных анимаций.