Heim Web-Frontend CSS-Tutorial So spielen und pausieren Sie CSS -Animationen mit CSS -benutzerdefinierten Eigenschaften

So spielen und pausieren Sie CSS -Animationen mit CSS -benutzerdefinierten Eigenschaften

Mar 28, 2025 am 10:18 AM

Spielen und Pause von CSS -Animationen: Verwenden Sie die benutzerdefinierten CSS -Eigenschaften, um die Kontrolle zu kontrollieren

In diesem Artikel werden CSS @keyframes -Animation erörtert und sich darauf konzentriert, wie die Animation innehalten und kontrolliert werden. Obwohl animation-play-state verwendet werden kann, um mit JavaScript zur Kontrolle zusammenzuarbeiten, gibt es viele Details. Wir werden eine flexiblere Setup -Methode einführen, bei der CSS -benutzerdefinierte Eigenschaften verwendet werden, um eine feine Steuerung von Animationen zu ermöglichen.

So spielen und pausieren Sie CSS -Animationen mit CSS -benutzerdefinierten Eigenschaften

Die Wichtigkeit der Pause von Animationen

Bei der Entwicklung einer CSS-gesteuerten Folie bemerkte ich ein interessantes Phänomen: Animationen, die nicht im Fenster enthalten sind, werden noch ausgeführt! Dies lässt mich denken: Verbrauchen diese laufenden Animationen immer noch die CPU/GPU -Ressourcen und beeinflussen so die Seitenleistung?

Obwohl das Performance-Panel der Devtools den Animationsverbrauch von "Off-Screen" -Rahmen nicht direkt anzeigen kann, pausiert die Animation beim Scrollen von der Folie und der Rückkehr jedoch nicht zum nächsten Bildschirm.

Daher ist es entscheidend zu untersuchen, wie Animationen in der Pause sind, was mit:

  1. Leistung: Vermeiden Sie unnötigen Ressourcenverbrauch.
  2. Steuerung: Bietet Benutzersteuerung über Animation.
  3. Barrierefreiheit: Bedenken Sie, dass einige Benutzer möglicherweise an Animationen sensibel sind.

Grundlegende Möglichkeiten zur Pause Animation

In CSS besteht die einzige Möglichkeit, die Animation zu pausieren, darin animation-play-state zu verwenden und ihren Wert auf paused festzulegen:

 .pause {
  Animationsspielstaat: Pause;
}
Nach dem Login kopieren

In JavaScript ist diese Eigenschaft animationPlayState , und die Einstellungsmethode lautet wie folgt:

 Element.Style.AnimationPlayState = 'Pause';
Nach dem Login kopieren

Wir können einen Spiel-/Pause erstellen, indem wir den aktuellen Wert von animationPlayState lesen:

 const running = element.style.AnimationPlayState === 'running';
Element.Style.AnimationPlayState = Running? 'Pause': 'Running';
Nach dem Login kopieren

Eine andere Möglichkeit, die Animation zu pausieren, besteht darin, animation-duration auf 0s festzulegen. Die Animation läuft tatsächlich noch, aber da die Dauer Null ist, wird keine Aktion gesehen. Dies ist jedoch keine echte Pause.

Direkte Entfernung der Animation ( animation: none !important; ) ist auch keine echte Pause.

Benutzerdefinierte Eigenschaften mit Datenattributen und CSS

Wir verwenden Datenattribute (z. data-animation ) als CSS-Selektor und verwenden CSS-benutzerdefinierte Attribute als Wert des Animationsattributs:

<div data-animation=""></div>
Nach dem Login kopieren
 [Datenanimation] {
  Animation:
    var (-Animn, keine)
    var (-Animdur, 1s)
    var (-dimtf, linear)
    var (-Animdel, 0s)
    var (-Animik, unendlich)
    var (-AnimDir, Alternative)
    var (-Animfm, keine)
    var (-Animps, laufend);
}
Nach dem Login kopieren

Durch benutzerdefinierte Eigenschaften können wir alle Aspekte der Animation steuern. Der Vorteil der benutzerdefinierten CSS -Eigenschaften besteht darin, dass sie in CSS und JavaScript gelesen und festgelegt werden können und die Menge an CSS -Code reduzieren können.

Die Animation selbst verwendet einen Klassenwähler und aktualisiert die Variablen im Selektor [data-animation] :

 /* Animationsklasse*/
.a-pulse {
  --Animn: Puls;
}
.a-Slide {
  -animdur: 3s;
  --Animn: Slide;
}

/* Keyframe*/
@keyframes pulse {
  / * ... */
}
@keyframes Slide {
  / * ... */
}
Nach dem Login kopieren

Beispiel: Verwenden Sie den Checkbox Trick, um die Animation zu pausieren

Erstellen Sie ein Kontrollkästchen zur Steuerung der Pausen für alle Animationen:

<input type="checkbox" id="data-animation-pause">
Nach dem Login kopieren
 [Data-Animation-Pause]: Überprüft ~ [Datenanimation] {
  -Animps: Pause;
}
Nach dem Login kopieren

Klicken Sie auf das Kontrollkästchen, um alle Animationen ohne JavaScript zu pausieren/abzuspielen.

CSS-Nur-Diashow

Ich benutze<details></details> Tags erstellen eine Folie, die die Folien automatisch durch das Active Animation autoplay schaltet. Jede Folie hat eine eigene sekundäre Animation. Das Attribut --animps steuert den Wiedergabestatus der Animation --img-animps Attribut steuert den Wiedergabestatus der sekundären Animation.

Um eine GPU -Überladung zu verhindern, sollte die Hauptanimation im Idealfall alle sekundären Animationen innehalten. Chrome Browser (derzeit) kann CSS -benutzerdefinierte Eigenschaften von @keyframes Animation aktualisieren.

Aktualisieren Sie --img-animps in der Hauptanimation @keyframes :

 @keyframes autoplay {
  / * ... */
  51% {-Img-Animps: Pause} /* Stop! */
  / * ... */
}
Nach dem Login kopieren

Um mit anderen Browsern kompatibel zu sein, muss der Anfangswert auf running gesetzt werden.

Aktivieren Sie prefers-reduced-motion

Wir können Medienabfragen prefers-reduced-motion verwenden, um auf Benutzereinstellungen zu reagieren:

 @media (bevorzugt-reduzierte Bewegung) {
  [Data-Animation = "Alternate"] {
    -animdur: 4s;
    --Animn: Deckkraft;
  }
  / * ... */
}
Nach dem Login kopieren

Pause Animation mit JavaScript

Wir können JavaScript verwenden, um alle [data-animation] Elemente zu iterieren und das Attribut --animps zu wechseln:

 // ... JavaScript -Code ...
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Verwendung von IntersectionObserver

Um Animationen automatisch abzuspielen und zu pausieren, können wir IntersectionObserver verwenden:

 // ... JavaScript -Code ...
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fügen Sie der Folie (Bonus) Audio hinzu

Fügen Sie ein Audio -Tag hinzu und kontrollieren Sie seine Wiedergabe und Pause in JavaScript:

<audio src="your-audio.mp3"></audio>
Nach dem Login kopieren
 // ... JavaScript -Code ...
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Durch die oben genannten Methoden können wir die Wiedergabe und Pause von CSS -Animationen flexibel steuern und die Seitenleistung und -börse verbessern.

Das obige ist der detaillierte Inhalt vonSo spielen und pausieren Sie CSS -Animationen mit CSS -benutzerdefinierten Eigenschaften. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1672
14
PHP-Tutorial
1277
29
C#-Tutorial
1257
24
Ein Vergleich statischer Formanbieter Ein Vergleich statischer Formanbieter Apr 16, 2025 am 11:20 AM

Versuchen wir, hier einen Begriff zu prägen: "Statischer Formanbieter". Sie bringen Ihre HTML

Ein Beweis für das Konzept, um Sass schneller zu machen Ein Beweis für das Konzept, um Sass schneller zu machen Apr 16, 2025 am 10:38 AM

Zu Beginn eines neuen Projekts erfolgt die SASS -Zusammenstellung im Blinzeln eines Auges. Dies fühlt sich gut an, besonders wenn es mit Browsersync kombiniert ist, das nachlädt

Wöchentliche Plattformnachrichten: HTML -Ladeattribut, die Haupt -ARIA -Spezifikationen und Wechsel von Iframe zu Shadow Dom Wöchentliche Plattformnachrichten: HTML -Ladeattribut, die Haupt -ARIA -Spezifikationen und Wechsel von Iframe zu Shadow Dom Apr 17, 2025 am 10:55 AM

In der Zusammenfassung der Plattformnachrichten in dieser Woche stellt Chrome ein neues Attribut für das Laden, Zugänglichkeitspezifikationen für Webentwickler und die BBC -Bewegungen ein

Einige praktisch mit dem HTML-Dialogelement Einige praktisch mit dem HTML-Dialogelement Apr 16, 2025 am 11:33 AM

Ich schaue mir das HTML -Element zum ersten Mal an. Ich habe es für eine Weile dessen bewusst, aber Haven &#039; Es wurde es noch nicht für einen Dreh genommen. Es hat einige ziemlich cool und

Papierform Papierform Apr 16, 2025 am 11:24 AM

Buy or Build ist eine klassische Technologiedebatte. Das Aufbau von Dingen selbst ist vielleicht billiger, weil Ihre Kreditkartenrechnung keine Werbebuchung gibt, aber

Wöchentliche Plattform News: Textabstand Lesezeichen, Top-Level-Erwartung, neuer Verstärker-Ladeindikator Wöchentliche Plattform News: Textabstand Lesezeichen, Top-Level-Erwartung, neuer Verstärker-Ladeindikator Apr 17, 2025 am 11:26 AM

In der Roundup in dieser Woche, einem praktischen Lesezeichen für die Inspektion von Typografie, unter Verwendung dessen, wie sich JavaScript -Module gegenseitig importieren, sowie Facebook &#039; s.

Wohin sollte 'Podcast' -Link abonnieren? Wohin sollte 'Podcast' -Link abonnieren? Apr 16, 2025 pm 12:04 PM

Für eine Weile war iTunes der große Hund im Podcasting. Wenn Sie also "Abonnieren Sie Podcast" verlinkt haben, um zu mögen:

Optionen zum Hosting Ihrer eigenen nicht-javaScript-basierten Analysen Optionen zum Hosting Ihrer eigenen nicht-javaScript-basierten Analysen Apr 15, 2025 am 11:09 AM

Es gibt eine Menge Analyseplattformen, mit denen Sie Besucher- und Nutzungsdaten auf Ihren Websites verfolgen können. Vielleicht vor allem Google Analytics, das weit verbreitet ist

See all articles