Beispiele für leistungsstarke CSS-Animationen

In diesem Beitrag erfährst du, wie einige beliebte Animationen auf CodePen erstellt wurden. Für diese Animationen werden alle Darbietungstechniken eingesetzt, die in anderen Artikeln in diesem Abschnitt erläutert wurden.

Lesen Sie den Artikel Warum sind manche Animationen langsam?, um die Theorie dahinter zu erfahren. diese Empfehlungen und im Animationsleitfaden finden Sie praktische Tipps.

Assistent lädt Animation

Ladeanimation des Assistenten in CodePen ansehen

Diese Ladeanimation wird vollständig mit CSS erstellt. Das Bild und die gesamte Animation wurden in CSS und HTML erstellt. keine Bilder oder JavaScript. Wenn Sie wissen möchten, wie es erstellt wurde und wie gut es funktioniert, können Sie die Chrome-Entwicklertools verwenden.

Animation mit den Chrome-Entwicklertools prüfen

Öffnen Sie bei laufender Animation den Tab „Leistung“ in den Chrome-Entwicklertools und zeichnen Sie einige Sekunden der Animation auf. In der Zusammenfassung sollte angezeigt werden, dass der Browser beim Ausführen dieser Animation keine Layout- oder Paint-Vorgänge ausführt.

<ph type="x-smartling-placeholder">
</ph> Zusammenfassung in den Entwicklertools <ph type="x-smartling-placeholder">
</ph> Die Zusammenfassung nach der Profilerstellung der Assistentenanimation.

Um zu erfahren, wie diese Animation ohne Layout und Farbe umgesetzt wurde, die sich bewegenden Elemente in den Chrome-Entwicklertools ansehen. Über den Bereich „Animationen“ können Sie nach den verschiedenen animierten Elementen suchen. Wenn Sie auf ein Element klicken, wird es im DOM hervorgehoben.

<ph type="x-smartling-placeholder">
</ph> Der Bereich „Animationen“ mit den verschiedenen Teilen der Animation. <ph type="x-smartling-placeholder">
</ph> Elemente im Animationsbereich der Chrome-Entwicklertools ansehen und auswählen.

Wählen Sie zum Beispiel das Dreieck, und beobachten, wie sich die Schachtel des Elements während seiner Reise in die Luft verändert. während es sich dreht und dann in die Startposition zurückkehrt.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Video, in dem gezeigt wird, wie der Pfad des Dreiecks in den Chrome-Entwicklertools erfasst werden kann.

Sehen Sie sich das Steuerfeld „Stile“ an, während das Element noch ausgewählt ist. Dort sehen Sie das CSS, das die Form des Dreiecks zeichnet, und die verwendete Animation.

Funktionsweise

Das Dreieck wird erstellt, indem mithilfe des Pseudoelements ::after generierte Inhalte hinzugefügt werden. mit Rahmen, um die Form zu erstellen.

.triangle {
    position: absolute;
    bottom: -62px;
    left: -10px;
    width: 110px;
    height: 110px;
    border-radius: 50%;
}

.triangle::after {
    content: "";
    position: absolute;
    top: 0;
    right: -10px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 28px 48px 28px;
    border-color: transparent transparent #89beb3 transparent;
}

Die Animation wird mit der folgenden CSS-Zeile hinzugefügt:

animation: path_triangle 10s ease-in-out infinite;

In den Chrome-Entwicklertools finden Sie die Keyframes, indem Sie im Style-Steuerfeld nach unten scrollen. Dort sehen Sie, dass die Animation mithilfe von transform erstellt wurde, um die Position des Elements zu ändern und es zu drehen. Die Eigenschaft transform ist eine der Eigenschaften, die im Animationsleitfaden beschrieben werden. was den Browser nicht veranlasst, Layout- oder Paint-Vorgänge auszuführen (was die Hauptursachen für langsame Animationen sind).

@keyframes path_triangle {
  0% {
    transform: translateY(0);
  }
  10% {
    transform: translateY(-172px) translatex(10px) rotate(-10deg);
  }
  55% {
    transform: translateY(-172px) translatex(10px) rotate(-365deg);
  }
  58% {
    transform: translateY(-172px) translatex(10px) rotate(-365deg);
  }
  63% {
    transform: rotate(-360deg);
  }
}

Für jeden der verschiedenen beweglichen Teile dieser Animation werden ähnliche Techniken verwendet. Das Ergebnis ist eine komplexe Animation, die reibungslos läuft.

Pulsierender Kreis

Pulsierenden Kreis auf CodePen ansehen

Diese Art von Animation wird manchmal verwendet, um die Aufmerksamkeit auf etwas auf einer Seite zu lenken. Zum besseren Verständnis der Animation können Sie die Firefox-Entwicklertools verwenden.

Animation mit den Firefox-Entwicklertools prüfen

Öffnen Sie bei laufender Animation den Tab „Leistung“ in den Firefox-Entwicklertools und zeichnen Sie einige Sekunden der Animation auf. Beenden Sie die Aufzeichnung. in der Vermittlungsabfolge sollten Sie sehen, dass für Stil neu berechnen keine Einträge vorhanden sind. Sie wissen jetzt, dass diese Animation keine Neuberechnung des Stils bewirkt, Layout- und Paint-Operationen.

<ph type="x-smartling-placeholder">
</ph> Details der Animation in der Wasserfall-Methode von Firefox <ph type="x-smartling-placeholder">
</ph> Die Wasserfall-Methode der Firefox-Entwicklertools.

In den Firefox-Entwicklertools überprüfen Sie den Kreis, um zu sehen, wie diese Animation funktioniert. <div> mit der Klasse pulsating-circle markiert die Position des Kreises. aber sie zeichnet selbst keinen Kreis.

.pulsating-circle {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 30px;
    height: 30px;
}

Der sichtbare Kreis und die Animationen werden mit den Pseudoelementen ::before und ::after erstellt.

Mit dem Element ::before wird der opake Ring erstellt, der sich außerhalb des weißen Kreises erstreckt. mit einer Animation namens pulse-ring, die transform: scale und opacity animiert.

.pulsating-circle::before {
    content: '';
    position: relative;
    display: block;
    width: 300%;
    height: 300%;
    box-sizing: border-box;
    margin-left: -100%;
    margin-top: -100%;
    border-radius: 45px;
    background-color: #01a4e9;
    animation: pulse-ring 1.25s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes pulse-ring {
  0% {
    transform: scale(0.33);
  }
  80%, 100% {
    opacity: 0;
  }
}

Sie können auch den Bereich Animationen in den Firefox-Entwicklertools aufrufen, um zu sehen, welche Eigenschaften animiert werden. Sie sehen dann eine Visualisierung der verwendeten Animationen, und die animierten Eigenschaften.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Wenn das Pseudoelement ::before ausgewählt ist, können wir sehen, welche Eigenschaften animiert werden.

Der weiße Kreis selbst wird mit dem Pseudoelement ::after erstellt und animiert. In der Animation pulse-dot wird transform: scale verwendet, um den Punkt während der Animation zu vergrößern und zu verkleinern.

.pulsating-circle::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: white;
  border-radius: 15px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
  animation: pulse-dot 1.25s cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite;
}

@keyframes pulse-dot {
  0% {
    transform: scale(0.8);
  }
  50% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.8);
  }
}

Eine solche Animation kann an verschiedenen Stellen in Ihrer Anwendung verwendet werden, Es ist wichtig, dass diese kleinen Anpassungen keine Auswirkungen auf die Gesamtleistung Ihrer App haben.

CSS 3D Sphere – reines Design

Pure CSS 3D Sphere auf CodePen ansehen

Diese Animation wirkt sehr kompliziert, Es werden jedoch Techniken verwendet, die wir bereits in den vorherigen Beispielen gesehen haben. Die Komplexität ergibt sich aus der Animation einer großen Anzahl von Elementen.

Öffne die Chrome-Entwicklertools und wähle eines der Elemente mit der Klasse plane aus. Die Kugel besteht aus rotierenden Ebenen und Speichen.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Das Flugzeug scheint sich zu drehen.

Diese Ebenen und Spokes befinden sich in einem Wrapper <div>, Dieses Element wird mit transform: rotate3d gedreht.

.sphere-wrapper {
  transform-style: preserve-3d;
  width: 300px;
  height: 300px;
  position: relative;
  animation: rotate3d 10s linear infinite;
}

@keyframes rotate3d {
  0% {
    transform: rotate3d(1, 1, 1, 0deg);
  }
  25% {
    transform: rotate3d(1, 1, 1, 90deg);
  }
  50% {
    transform: rotate3d(1, 1, 1, 180deg);
  }
  75% {
    transform: rotate3d(1, 1, 1, 270deg);
  }
  100% {
    transform: rotate3d(1, 1, 1, 360deg);
  }
}

Die Punkte befinden sich verschachtelt in den Elementen plane und spoke. verwenden sie eine Animation, bei der sie mithilfe von Transformationen skaliert und übersetzt werden. Dadurch entsteht der Pulseffekt.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Der Punkt dreht sich mit der Kugel und pulsiert.
.spoke-15 .dot,
.spoke-21 .dot {
  animation: pulsate 0.5s infinite 0.83333333s alternate both;
  background-color: #55ffee;
}

@-webkit-keyframes pulsate {
  0% {
    transform: rotateX(90deg) scale(0.3) translateZ(20px);
  }
  100% {
    transform: rotateX(90deg) scale(1) translateZ(0px);
  }
}

Bei der Erstellung dieser Animation geht es um das richtige Timing, um den Dreh- und Pulseffekt zu erzeugen. Die Animationen selbst sind ziemlich einfach, und Methoden anwenden, die sehr gut funktionieren.

Sie können sich ansehen, wie diese Animation abschneidet, indem Sie die Chrome-Entwicklertools öffnen und die Leistung während der Ausführung aufzeichnen. Nach dem anfänglichen Laden löst die Animation weder Layout noch Paint aus, und läuft reibungslos.

Fazit

Anhand dieser Beispiele können Sie sehen, dass durch die Animation einiger Eigenschaften mit leistungsfähigen Methoden einige sehr coole Animationen entstehen können. Standardmäßig die leistungsfähigen Methoden, die im Animationsleitfaden beschrieben sind können Sie sich darauf konzentrieren, den gewünschten Effekt zu erzielen.