Вам может понадобиться рассмотреть forwards
во втором, чтобы сохранить последнее состояние, потому что на самом деле, когда обе анимации заканчиваются, ваш элемент возвращается к начальному значению преобразования масштаба, равному scale(1)
(чтобы быть болееТочно это transform:none
)
#circle {
border-radius: 50%;
background: red;
animation: zoomIn 1s, pulse 0.5s ease 1s forwards;
height: 100px;
width: 100px;
}
@keyframes zoomIn {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}
@keyframes pulse {
from {
transform: scale(1);
}
100% {
transform: scale(1.5);
}
}
<div id="circle"></div>
ОБНОВЛЕНИЕ
Время ожидания связано с использованием animation-timing-function
, равным ease
для обоих иэто означает, что у вас будут замедления (медленные в конце) и замедления (медленные в начале), которые создают такое поведение , что делает паузу между обеими анимациями.Если вы измените первый на ease-in
, а последний на ease-out
, у вас не будет этой проблемы.
#circle {
border-radius: 50%;
background: red;
animation: zoomIn 1s ease-in, pulse 0.5s ease-out 1s forwards;
height: 100px;
width: 100px;
}
@keyframes zoomIn {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}
@keyframes pulse {
from {
transform: scale(1);
}
100% {
transform: scale(1.5);
}
}
<div id="circle"></div>
![enter image description here](https://i.stack.imgur.com/lK9wn.png)