CSSキーフレームアニメーションを操作しているときに、要素に次のような2つのアニメーションを与えるとわかりました。
.element {
animation: animate1 1000ms linear infinite,
animate2 3000ms linear infinite;
}
両方のアニメーションがtransform
プロパティを使用してアニメーション化する場合、最後のアニメーションのみがカスケードによってトリガーされます。しかし、@keyframes
アニメーションが1つmargin
またはdisplay
他のcss
属性と他の用途であるtransform
場合、両方がトリガーされます。
これは、以下の関連コードを含むcodepenの例です。
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
ますか?それとも、これはうまくいかないものですか?例は非常に単純で、アニメーションを1つにまとめることができ、両方を宣言する必要がないことはわかっていますが、これは私が取り組んでいたより複雑なアニメーションのテストでした。
ありがとう