Heim >Web-Frontend >CSS-Tutorial >Wie starte ich eine CSS3-Animation reibungslos und ohne Jitter neu?
So starten Sie eine CSS3-Animation nahtlos neu
Wenn Sie eine CSS3-Animation haben, die bei einem Auslöser wie einem Klick neu gestartet werden muss, müssen Sie Sie stehen vor einem Dilemma: Das ständige Hin- und Herskalieren kann zu Verzögerungen und Komplexität führen. Während das Entfernen und erneute Einfügen des animierten Elements funktionieren kann, lohnt es sich, eine elegantere Lösung zu prüfen.
Glücklicherweise gibt es eine Technik mit Reflow, die einen reibungslosen Reset ermöglichen kann. Indem Sie die Animation vorübergehend deaktivieren, einen Reflow erzwingen und sie dann wieder aktivieren, können Sie die Animation effektiv ohne Verzögerung oder Unterbrechung neu starten. So funktioniert es:
function reset_animation() { var el = document.getElementById('animated'); el.style.animation = 'none'; // Temporarily disable animation el.offsetHeight; // Force reflow el.style.animation = null; // Re-enable animation }
Dieser Ansatz nutzt das Verhalten von Browsern, um den Dokumentenfluss (Reflow) neu zu berechnen, wenn sich bestimmte Eigenschaften ändern. Indem Sie die Animation deaktivieren und erneut aktivieren, zwingen Sie den Browser, die Animationseigenschaften neu zu initialisieren und sie effektiv neu zu starten.
Denken Sie daran, dass diese Technik nicht auf jQuery oder Move.js beschränkt ist; Sie können es mit jeder CSS-Animation verwenden. Wenn Sie also das nächste Mal eine CSS-Animation neu starten müssen, sollten Sie diese Reflow-basierte Methode für eine nahtlose und effiziente Lösung verwenden.
Das obige ist der detaillierte Inhalt vonWie starte ich eine CSS3-Animation reibungslos und ohne Jitter neu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!