Обычно стили анализируются сверху вниз, но здесь это не проблема.
То, что происходит в вашем случае, это то, что преобразование изначально применяется, но затем оно переопределяется анимацией.После окончания анимации элемент возвращается к своему стилю по умолчанию, который имеет преобразование.
По сути, даже если сначала применить преобразование, вы не увидите его, пока элемент не вернется к нему после окончания анимации.
Единственное решение, если вы хотите иметьпреобразование во время анимации должно включать его в саму анимацию.
@keyframes moveUp {
0 % {
opacity: 0;
transform: translate(-50%, 2rem);
}
100 % {
opacity: 1;
transform: translate(-50%, 0);
}
}
РЕДАКТИРОВАТЬ: Чтобы уточнить, порядок, в котором применяются стили, делаетне важно.Будет ли анимация или преобразование применены первыми, результат будет одинаковым.
Я думаю, что источник вашего замешательства в том, что первое преобразование - translateX
, а анимация - только translateY
.В обоих случаях меняется значение свойства transform
элемента.Поэтому, на какую ось идет перевод, не имеет значения.Сначала вы устанавливаете transform: translateX(-50%)
, но затем, как только начинается анимация, преобразование становится translateY(2rem)
.Часть translateX
удаляется из transform
, если вы не включите ее в анимацию, как я показал.