Во время работы с анимацией ключевого кадра CSS я обнаружил, что когда я даю анимацию элемента два типа:
.element {
animation: animate1 1000ms linear infinite,
animate2 3000ms linear infinite;
}
Если обе анимации ожидают использование свойства transform
, только последний запускается через каскадирование. Но если анимация @keyframes
позволяет сказать один margin
или display
или какой-либо другой атрибут css
, а другой использует transform
, то они оба запускаются.
вот пример кода с соответствующим кодом ниже.
CSS
@keyframes move {
0%, 100% { transform: translateX(0px); }
50% { transform: translateX(50px); }
}
@keyframes skew {
0%, 100% { transform: skewX(0deg); }
50% { transform: skewX(15deg); }
}
@keyframes opacity {
0%, 100% { opacity: 1; }
50% { opacity: .25; }
}
.taco {
animation: skew 2000ms linear infinite,
opacity 4000ms linear infinite;
}
В верхней части они запускают
.burger {
animation: skew 2000ms linear infinite,
move 4000ms linear infinite;
}
В приведенном выше примере только триггеры (через каскадные) - почему?
У кого-нибудь есть решение для этого без использования js
? Или это то, что просто не работает? Пример довольно прост, и я знаю, что я мог бы объединить анимации в один и не объявлять оба, но это был тест для более сложной анимации, над которой я работал.
спасибо