Ich arbeite an einer Website (die ich tat nicht Design, jemand anderes gab mir die HTML/CSS) als Entwickler und wir haben eine nette Spinner Animation für asynchrone Ladekomponenten. Es ist für immer Spinnen Animation ist definiert durch diese CSS-Regel:Warum beeinflusst das CSS-Positionsattribut eine Rotationsanimation?
animation: spinning 1s infinite linear;
(es hat auch Hersteller-Prefix-Versionen, aber es ist irrelevant).
Die spinning
Animation ist wie folgt definiert:
@keyframes spinning {
0% { transform: rotate(0); }
100% { transform: rotate(360deg); }
}
hat unser Designer ein position: absolute !important
Attribut in das Spinnelement setzen. Ich habe versucht, es in einem anderen Element zu positionieren, und ich dachte, dieses Attribut sei irrelevant. Sobald ich position: absolute
entfernte, hörte der Spinner auf zu drehen. Als ich es erneut hinzufügte, begann Spinner erneut zu drehen.
Ich habe position
Werte auch andere versucht, scheint es, dass absolute
und fixed
arbeiten in Ordnung (in Bezug auf Animation Spinnen), während relative
und static
Ursache der Animation zu stoppen.
Warum würde das CSS-Positionsattribut eine Spinneranimation beeinflussen?
Hier ist ein Ausschnitt reproduzieren das Problem:
@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>
Ich habe keine Ahnung, warum das passiert, aber Sie können auch Elemente mit einer absoluten Position in der Eltern-Elemente platzieren, mit 'Position: relative'in diese Eltern. – Aer0
@Ash Ich wünschte, ich könnte, aber es ist ein großes Unternehmensprojekt mit vielen Komponenten über und da, so dass es praktisch unmöglich ist. Es ist sogar extrem schwierig, einen SSCCE bereitzustellen, da selbst das Erstellen eines SSCCE Stunden dauern kann. Ich suche nach bekannten Hinweisen, warum dies passieren würde, wenn es ein bekanntes Problem der Gemeinschaft ist. –
Ich denke, du solltest das ** spinning ** Keyframe überprüfen. Es kann Ihnen die Antwort geben basierend auf der HTML-Struktur –