私は開発者としてがデザインではなく、他の誰かが私にHTML/CSSを渡してくれました。私たちは非同期ローディングコンポーネント用のすばらしいスピナーアニメーションを持っています。永遠に回転するアニメーションは、このCSSルールで定義されています。CSS位置属性がローテーションアニメーションに影響するのはなぜですか?
animation: spinning 1s infinite linear;
(ベンダープレフィックスのバージョンもありますが、それは無関係です)当社のデザイナーが回転要素にposition: absolute !important
属性を入れている
@keyframes spinning {
0% { transform: rotate(0); }
100% { transform: rotate(360deg); }
}
:
spinning
アニメーションは、以下のように定義されます。私は他の要素の中に配置しようとしていましたが、その属性は無関係であると考えました。 position: absolute
を削除すると、スピナーの回転が停止しました。私はもう一度それを追加すると、スピナーは再び回転を開始した。私も他のposition
値を試してみた
、アニメーションを停止させるstatic
relative
ながら(スピニングアニメーションに関しては)absolute
とfixed
は大丈夫働いているようだと。
CSS位置属性がスピナーアニメーションに影響するのはなぜですか?
は、ここで問題を再現するスニペットです:
@keyframes spinning {
0% { transform: rotate(0); }
100% { transform: rotate(360deg); }
}
#first{
position: absolute;
}
#second{
position: relative; /* or don't specify it at all */
}
<div style='background:yellow;width:400px;height:100px;'>
<span id='first' style='animation:spinning 1s infinite linear'>hello</span>
</div>
<div style='background:lime;width:400px;height:100px;'>
<span id='second' style='animation:spinning 1s infinite linear'>hello</span>
</div>
'位置を使用して、私はそれが起こって、なぜ何の手掛かりをしたんが、あなたはまた、親の要素に絶対位置を持つ要素を配置することができますそれらの両親。 – Aer0
@Ash私はそれができることを望むが、それは多くのコンポーネントを持つ大きなエンタープライズプロジェクトであり、実際には不可能である。 SSCCEを提供することは非常に困難です。作成するにも数時間かかることがあります。私はそれがコミュニティによって知られている問題なら、なぜこれが起こるのかについてのよく知られた手がかりを探しています。 –
**回転**のキーフレームを確認してください。 これはhtml構造に基づいて答えを与えるかもしれません –