この単純な例では、ホバー上に右に動かすアニメーションを持つ要素があるとします。次に、マウスが元の位置にまっすぐジャンプする代わりに移動すると、その状態に戻ります。アニメーションからの遷移
#test{
position:absolute;
left:0;
transition:left 3s linear;
}
#test:hover{
animation:move 4s linear;
}
@keyframes move{
0%{
left:0;
}
100%{
left:300px;
}
}
<div id="test">Hover</div>
結果は、任意のエッジやChromeのいずれかで動作しません。 Firefoxは動作しますが、最初のアニメーションでのみ動作します。以降のアニメーションは、ページを更新するまで機能しません。これは可能ですか?そして、なぜFirefoxは一度動作して停止しますか?
これはわかりやすい例です。これはちょうどトランジションで行うことができますが、トランジションは限られており、必ずしも可能ではありません。また、任意の点から来ている可能性があるため、リターンアニメーションは不可能です。
これは、すべてがちょうど移行を行うことができない簡単な例です。 – qw3n
@ qw3nはい、ほとんどのアニメーションは可能です。アニメーションを連鎖させ、ほぼすべてのCSSプロパティをアニメーション化できます。より複雑なアニメーションでは、確実にキーフレームアニメーションを使用すると、より多くのコントロールが可能になりますが、トランジションプロパティだけで達成することができます。それ以上のことをやりたいのですが、あなたはそれを使用しています。 –
主な理由は、未知の開始点からアニメートできないことです。この例では、中にアニメーションを残しておけば、アニメーションのどこでそれが起こるかを知る方法ではありません。トランジションは実際に彼らが最後まで働いているスタートについては気にしません。 – qw3n