Heim > Web-Frontend > CSS-Tutorial > Warum wirkt sich CSS „animation-delay' manchmal nur auf die erste Animationsiteration aus?

Warum wirkt sich CSS „animation-delay' manchmal nur auf die erste Animationsiteration aus?

Linda Hamilton
Freigeben: 2024-12-06 06:14:15
Original
424 Leute haben es durchsucht

Why Does CSS `animation-delay` Sometimes Only Affect the First Animation Iteration?

Animationsverzögerungen in CSS verstehen

Die Eigenschaft „animation-delay“ ist ein wichtiges CSS-Attribut, das die Verzögerung vor dem Start einer Animation steuert. In bestimmten Szenarien gilt dies jedoch möglicherweise nur für die erste Iteration einer Animation, sodass nachfolgende Iterationen davon nicht betroffen sind.

Betrachten Sie beispielsweise den folgenden Code:

@keyframes barshine {
  from {background-image:linear-gradient(120deg,rgba(255,255,255,0) -10%,rgba(255,255,255,0.25) -5%,rgba(255,255,255,0) 0%);}
  to {background-image:linear-gradient(120deg,rgba(255,255,255,0) 100%,rgba(255,255,255,0.25) 105%,rgba(255,255,255,0) 110%);}
}
.progbar {
  animation: barshine 1s 4s linear infinite;
}
Nach dem Login kopieren

In diesem Beispiel Die Animationsverzögerung von 4 Sekunden wird nur auf die erste Schleife der Animation angewendet. Anschließend wird die Glanzanimation ohne Verzögerung auf unbestimmte Zeit fortgesetzt.

Alternativer Ansatz

Eine Alternative zur Verwendung der Animationsverzögerung besteht darin, einen Zwischenschritt innerhalb der Animations-Keyframes einzuführen. Zum Beispiel:

@keyframes expbarshine {
  from {background-image:linear-gradient(120deg,rgba(255,255,255,0) -10%,rgba(255,255,255,0.25) -5%,rgba(255,255,255,0) 0%);}
  80% {background-image:linear-gradient(120deg,rgba(255,255,255,0) -10%,rgba(255,255,255,0.25) -5%,rgba(255,255,255,0) 0%);}
  to {background-image:linear-gradient(120deg,rgba(255,255,255,0) 100%,rgba(255,255,255,0.25) 105%,rgba(255,255,255,0) 110%);}
}
.progbar {
  animation: barshine 5s linear infinite;
}
Nach dem Login kopieren

Diese Technik verlängert effektiv die Animationsdauer, um die gewünschte Verzögerung zu berücksichtigen (in diesem Fall 80 % der Gesamtdauer). Dieser Ansatz kann jedoch das Erscheinungsbild der Animation verändern.

Browserübergreifende Kompatibilität

Es ist wichtig zu beachten, dass das Verhalten der Animationsverzögerung je nach Browser unterschiedlich sein kann . Einige Browser wenden die Verzögerung möglicherweise konsistent über alle Iterationen hinweg an, während andere die Verzögerung möglicherweise bei jeder nachfolgenden Schleife zurücksetzen. Daher ist es oft notwendig, browserspezifische Problemumgehungen einzusetzen.

Das obige ist der detaillierte Inhalt vonWarum wirkt sich CSS „animation-delay' manchmal nur auf die erste Animationsiteration aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage