Я изучаю анимацию и пытаюсь заставить div (с input внутри) двигаться вверх, а затем вправо.
Переход вверх выглядит красиво и плавно. Однако переход вправо «прыгает» и заканчивается в более высокой точке (по отношению к предыдущему состоянию).
Что я делаю не так?
Код:
.container {
top: 30%;
position: absolute;
animation: move 5s 1;
}
input {
width: 100px;
height: 10px;
}
@keyframes move {
0% {
top: 30%;
}
50% {
top: 10%;
}
100% {
top: 10%;
left: 20%;
}
}<div class = "container">
<input />
</div>





Проблема в том, что ваш left не имеет известного места начала, поэтому у него нет известной позиции, с которой можно начинать анимацию. Попробуйте следующее:
.container {
top: 30%;
left: 0%;
position: absolute;
animation: move 5s 1;
}
input {
width: 100px;
height: 10px;
}
@keyframes move {
0% {
top: 30%;
left: 0%;
}
50% {
top: 10%;
left: 0%;
}
100% {
top: 10%;
left: 20%;
}
}<div class = "container">
<input />
</div>