Grundlegende Deklaration & Verwendung
@keyframes name-of-animation {
0% { opacity: 0; }
20% { opacity: 1; }
80% { opacity: 0; }
100% { opacity: 1; }
}
.animate-this-element {
animation: name-of-animation 5s infinite;
}
Sie können beliebig viele „Haltepunkte“ in der @keyframe Animation verwenden, und dies ist eine der Hauptstärken von Keyframe-Animationen. Während CSS transition nur von einem Zustand in einen anderen geht, kann eine Keyframe-Animation während ihres Zeitplans zwischen vielen verschiedenen Zuständen interpolieren.
Wenn eine Animation die gleichen Start- und End-Eigenschaften hat, ist eine Möglichkeit, dies zu tun, die 0% und 100% Werte durch Kommas zu trennen
@keyframes fontbulger {
0%, 100% {
font-size: 10px;
}
50% {
font-size: 12px;
}
}
Oder Sie können die Animation immer zweimal (oder eine gerade Anzahl von Malen) laufen lassen und die Richtung auf alternate stellen.
Keyframe-Animation mit separaten Eigenschaften aufrufen
.box {
animation-name: bounce;
animation-duration: 4s; /* or: Xms */
animation-iteration-count: 10;
animation-direction: alternate; /* or: normal */
animation-timing-function: ease-out; /* or: ease, ease-in, ease-in-out, linear, cubic-bezier(x1, y1, x2, y2) */
animation-fill-mode: forwards; /* or: backwards, both, none */
animation-delay: 2s; /* or: Xms */
}
Animation Shorthand
Trennen Sie einfach alle einzelnen Werte durch Leerzeichen. Die Reihenfolge spielt keine Rolle, außer wenn Sie sowohl Dauer als auch Verzögerung verwenden, müssen diese in dieser Reihenfolge erfolgen. Im Beispiel unten ist 1s = Dauer, 2s = Verzögerung, 3 = Iterationen.
animation: test 1s 2s 3 alternate backwards;
Transform und Animation kombinieren
@keyframes infinite-spinning {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
Mehrere Animationen
Sie können die Werte durch Kommas trennen, um mehrere Animationen für einen Selektor zu deklarieren.
.animate-this {
animation:
first-animation 2s infinite,
another-animation 1s;
}
steps()
Die Funktion steps() steuert genau, wie viele Keyframes im Animationszeitraum gerendert werden. Nehmen wir an, Sie deklarieren
@keyframes move {
from { top: 0; left: 0; }
to { top: 100px; left: 100px; }
}
Wenn Sie steps(10) in Ihrer Animation verwenden, wird sichergestellt, dass nur 10 Keyframes im zugewiesenen Zeitraum ablaufen.
.move {
animation: move 10s steps(10) infinite alternate;
}
Die Rechnung geht gut auf. Jede Sekunde bewegt sich das Element 10 Pixel nach links und 10 Pixel nach unten, bis zum Ende der Animation, und dann wieder unendlich rückwärts.
Dies kann großartig für Sprite-Sheet-Animationen sein, wie diese Demo von Samurai.
Browser-Unterstützung
Diese Browser-Support-Daten stammen von Caniuse, das weitere Details enthält. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.
Desktop
| Chrome | Firefox | IE | Edge | Safari |
|---|---|---|---|---|
| 4* | 5* | 10 | 12 | 5.1* |
Mobil / Tablet
| Android Chrome | Android Firefox | Android | iOS Safari |
|---|---|---|---|
| 127 | 127 | 4* | 6.0-6.1* |
Weitere Ressourcen
- MDN Docs
- MDN: CSS-Animationen verwenden
- Kann ich verwenden – Browser-Unterstützung
- Video: Einführung in CSS-Animationen
Alte Vendor-Syntaxen
@-webkit-keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
@-moz-keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
@-o-keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
@keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
#box {
-webkit-animation: NAME-YOUR-ANIMATION 5s infinite; /* Safari 4+ */
-moz-animation: NAME-YOUR-ANIMATION 5s infinite; /* Fx 5+ */
-o-animation: NAME-YOUR-ANIMATION 5s infinite; /* Opera 12+ */
animation: NAME-YOUR-ANIMATION 5s infinite; /* IE 10+, Fx 29+ */
}
ist von & bis gleichbedeutend mit der Verwendung von 0% und 100%?
Ja! Das ist es.
Ja..!!
Tolle Informationen, das hat mir sehr gut gefallen, vielen Dank
ja
Wenn Sie 0%, 50% und 100% verwenden, können Sie Zwischenschritte haben.
(z. B. 0% nichts 25% wachsen 50% scheren 75% Farbe ändern 100% schrumpfen)
Hallo Chris Coyier,
Die Tipps und Tricks sind gut, aber wenn Sie den Demo-Link einfügen würden, wäre das sehr hilfreich. Für das Publikum, um den Effekt live zu sehen, und für Sie, um potenziellen wiederkehrenden Traffic zu erhöhen.
Leute – das ist der Snippets-Bereich! Es ist buchstäblich der einzige Bereich der Website, der keine Demos/Tutorials hat, es sind rein die Grab-and-Go-Snippets... Wie beschrieben!
Font Bulger
http://jsfiddle.net/keif/p8ytP/
Endloses Drehen
http://jsfiddle.net/keif/LTvLF/
Glauben Sie mir, es gibt keinen besseren Weg, diese Dinge zu lernen, als zu versuchen, Ihre eigene Demo zu erstellen.
Dies gilt noch mehr für JavaScript-Frameworks, und JSFiddle ist ein unschätzbares Werkzeug, um schnell und dreckig Code zu schreiben, um Teile davon zu verstehen.
Hallo Adam, macht die Unfähigkeit, das zu tun, was Spence sucht, nicht den Zweck der Animation auf diese Weise zunichte?
Ich stoße auf genau dasselbe Problem. Weitere Gedanken zur Lösung ohne Hover-Ansatz?
Ich stimme Hiren zu. Eine Demo, die an die Snippets angehängt ist (wenn immer möglich), wäre sehr schön.
Stimme der Demo, die an Snippets angehängt ist, zu. Nur etwas super Einfaches.
Hallo Chris, Sie können -webkit-animation-delay verwenden, um die Effekte zu verzögern.
Hey, Chris, die Verzögerung finden Sie hier
http://css-infos.net/property/-webkit-animation-delay
Sie können auch Shorthand verwenden, um mehrere Deklarationen in einem Schritt festzulegen
http://css-infos.net/property/-webkit-animation
Grüße!
Atg
Beim Experimentieren habe ich festgestellt, dass die Webkit-Verzögerungssyntax lautet
“-webkit-animation-delay: 5s;”
Ziemlich einfach!
Hallo und vielen Dank für den Code-Schnipsel. Kann mir jemand bitte bei der folgenden Opacity-Animation helfen
Die Div-Ebene beginnt unsichtbar, animiert dann (nach einer Verzögerung von 2 Sekunden) zu vollständig sichtbar und bleibt in diesem Zustand.
Derzeit kann ich mit dem obigen Code (einschließlich des Verzögerungscodes) nur Folgendes erreichen:
Die Div-Ebene beginnt sichtbar, animiert dann (blitzschnell unsichtbar, dann animiert) zu vollständig sichtbar (nach einer Verzögerung von 2 Sekunden) und bleibt in diesem Zustand.
Wenn ich einer Div eine Opazität von 0 gebe, tritt Folgendes auf:
Die Div-Ebene beginnt unsichtbar, animiert dann zu vollständig sichtbar (nach einer Verzögerung von 2 Sekunden) und kehrt dann zu unsichtbar zurück.
Ist das, was ich versuche, überhaupt möglich oder bin ich nur ein Trottel?
Vielen Dank.
Hey Spence –
Ich denke, was Sie suchen, ist nur bei Hover/Zustandsänderung möglich. So machen Sie das
1. Setzen Sie Ihre Animationsattribute auf das/die Element(e), das/die Sie animieren möchten, z. B.
.box {
-webkit-transition: all 0.2s ease-in-out;
}
2. Beim Hover
.box:hover {
background: red;
}
Das ist alles! Ändern Sie nach Bedarf.
Adam, macht die Unfähigkeit, das zu tun, was Spence sucht, nicht den Zweck der Animation auf diese Weise zunichte?
Ich stoße auf genau dasselbe Problem. Weitere Gedanken zur Lösung ohne Hover-Ansatz?
Hallo Spence,
Ich habe mir gerade den Kopf über die gleiche Frage zerbrochen und bin auf diese Seite gestoßen
http://css3animator.com/2010/12/how-to-control-your-css3-animations/
Ich glaube, das ist es, was Sie suchen: Sie möchten `forwards` verwenden, damit der letzte Keyframe Ihrer Animation erhalten bleibt, damit Sie den Eindruck erwecken können, dass etwas erschienen ist.
Ich habe auch entdeckt, dass, wenn Sie `from` und `to` verwenden, dieses Verhalten standardmäßig ist, aber wenn Sie mehrere Keyframe-Zustände verwenden möchten, wird es standardmäßig auf seinen ursprünglichen Zustand zurückgesetzt, es sei denn, Sie geben den `fill-mode` an.
Ich hoffe, das hilft.
m.
Verwenden Sie einfach -webkit-animation-iteration-count: 1;
Schön!
Danke Mairead
Coole Anleitung
Vielen Dank
Hey Chris! Wirklich informative Snippet! Dein Blog wird immer besser =)
Übrigens, Sie haben „hat das gleiche“ in „hat das gleiche Start…“ versehentlich wiederholt.
Danke!
Danke, behoben!
Hallo alle zusammen!
Ich bin neu in CSS und stecke fest! Ich habe „2“ Bilder, 70px mal 70px. Ich möchte, dass „1“ stillsteht und „2“ sich dreht. Bild „2“ hat nur einen kleinen Punkt und Bild „1“ hat einen inneren und einen äußeren Kreis. Also möchte ich, dass der kleine Punkt zwischen dem inneren und äußeren Kreis rotiert. Bisher habe ich es gemacht, aber der Punkt macht eine große Drehung vom Bildschirm weg! Ich weiß nicht, ob es die Phase meiner Rotation ist oder ob ich Margins richtig verwende oder ob die Perspektivenursprung nicht vorhanden ist oder nichts davon. Danke für jede Hilfe im Voraus und hoffe, jemand versteht, worum es mir geht.
Hallo Lee,
Es sieht so aus, als müssten Sie einen anderen Mittelpunkt für die Rotation definieren. Wenn Sie -webkit-transform: rotate() verwenden, können Sie den Mittelpunkt für die 2D- und 3D-Rotation mit -webkit-transform-origin (http://css-infos.net/property/-webkit-transform-origin) definieren.
Das ist wirklich schön! Danke Leute fürs Teilen. Ich werde es jetzt ausprobieren :)
Ich habe vergessen, wie oft ich auf diese Seite zurückgekommen bin. Eine großartige, einfache Abhandlung.
Hallo allerseits!
Was ist mit dem Überschreiben einer @keyframe-Animation? Ich kann nicht herausfinden, ob es möglich ist (mit Chrome).
Ich erkläre mich
Ich habe eine Webanwendung mit mehreren CSS3-Funktionen und @keyframes-benannten Sätzen erstellt, damit die Benutzeroberfläche schön interagiert. Meine App ist von verschiedenen verbundenen Benutzern anpassbar. Die Anpassung erfolgt durch Importieren einer CSS-Datei, die einige Farben und Layouts überschreibt. Ich möchte, dass Leute, die sich mit CSS3-Funktionen auskennen, meine Standardanimationen (die über JavaScript ausgelöst werden) überschreiben können. Aber es sieht so aus, als ob die zweite Definition ignoriert wird, wenn Sie ein zweites @keyframes mit demselben Namen wie das erste schreiben.
Gibt es hier Hilfe?
Liebe es!
schöner Inhalt, aber langweilige Seitenfarben, die ältere Seite ist in Bezug auf die Farben viel besser
Danke Chris. Ich liebe es.
Diese Seite kann ich in IE8 nicht laden. Die Ladezeit dauert länger…
Hallo Jack
Ich erkenne, dass es aus Sicht des Webdesigns eine Ewigkeit her ist, seit Sie hier Ihren Kommentar hinterlassen haben, aber ich fragte mich, ob Sie eine Lösung gefunden haben. Ich habe dieses Problem seit über einer Woche und finde keine Antwort.
Durch viel Ausprobieren scheint IE8 einfach keine Keyframes zu ignorieren und gibt deshalb auf und friert ein.
Ich habe versucht, die Animationen in einem bedingten Kommentar zu verstecken und sie nur für IE9+ und alle anderen Browser bereitzustellen. Das funktioniert wie erwartet, nur, wie Sie wahrscheinlich wissen, unterstützt IE10 keine bedingten Kommentare!
Jede Hilfe wäre sehr willkommen…
Hallo Leute, ich möchte die „Frames“ steuern, also habe ich 5 Frames in einem CSS-Sprite. Sie repräsentieren jeden Zustand. Ich möchte, dass sie über eine bestimmte Zeit ablaufen, ohne die gleichmäßige Bewegung dazwischen, ich möchte nur, dass sie von einem Frame zum nächsten über eine bestimmte Zeit laufen. Es fällt mir schwer, es zu erklären, aber Flash hat eine Möglichkeit, dies recht einfach zu tun.
Hey Chris, ich denke, Sie möchten die `step-start`-Eigenschaft verwenden. Ich habe sie in dieser Animation verwendet (http://codepen.io/ScottJH/full/IAyEp). Ich erkenne, dass dieser Kommentar über ein Jahr alt ist, aber hey, ich dachte, ich könnte dazu beitragen, wenn ich könnte.
Hallo Chris,
Ich fand Ihre Website sehr hilfreich. Ich habe viele neue Ideen von Ihrer Website gelernt und umgesetzt.
Ich war begeistert, als ich diesen speziellen Animationstrick lernte – die Verwendung von Keyframes. Ich habe dies implementiert, um die Archive auf meiner Website ABAP Help hervorzuheben, wenn die Leute darüber fahren.
Nochmals vielen Dank für all diese Tutorials.
Mit freundlichen Grüßen,
Naimesh Patel
Ich habe eine Frage zur Kombination von Animationen – wenn ich das unten versuche, bekomme ich entweder „leaffall“ ODER „drop“ zufällig beim Aktualisieren. Ich erwartete, dass beides gleichzeitig passiert.
Hat jemand dieses Problem gesehen?
Vielen Dank für dieses Snippet, Chris.
Grüße aus Brasilien!
Das ist großartig! Ich habe mich von CSS3-Animationen ferngehalten, weil ich dachte, die Syntax sei zu schwierig, aber du hast es ziemlich einfach gemacht zu verstehen. Danke.
Für die Endlosschleife könnten Sie den Wert „to“ auf 359deg ändern, um ein Stoppen zu verhindern.
Es ist großartig, sehr einfach zu verstehen und ein großes Dankeschön für diese wundervolle Anleitung. Ich möchte wissen, ob ich eine Animation (z. B. Textanimation – Ausblenden) von Satz zu Satz haben möchte, wie kann ich das erreichen? Wir machen ähnliche Textanimationen, wenn wir Präsentationen erstellen.
„Die Reihenfolge spielt keine Rolle, außer wenn Sie sowohl Dauer als auch Verzögerung verwenden, müssen diese in dieser Reihenfolge erfolgen. Im Beispiel unten ist 1s = Dauer, 2s = Verzögerung, 3 = Iterationen.“
Das funktioniert nicht, wenn Sie die Anzahl der Iterationen auf unendlich setzen.
Stattdessen muss `infinite` am Ende stehen, oder?
Danke für diese nützlichen Snippets! :)
Es sollte beachtet werden, dass die Keyframe-Sequenz effektiv „zurückgesetzt“ wird, wenn das Element über jQuery oder etwas anderes geändert wird. Keyframes zum Durchlaufen von Rahmenfarben für eine Play-Schaltfläche in einem Player werden jedes Mal zurückgesetzt, wenn die Schaltfläche von „Play“ auf „Pause“ wechselt. Zum Beispiel
@keyframes change_border
{
0% {border-color: #202424;}
25% {border-color: #a09b8c;}
75% {border-color: #69707d;}
100% {border-color: #737e88;}
}
div#player_control {
animation: change_border 66s infinite;
animation-direction:alternate;
-moz-animation: change_border 66s infinite;
-moz-animation-direction:alternate;
-webkit-animation: change_border 66s infinite;
-webkit-animation-direction:alternate;
}
Diese „unendliche“ Sequenz von Farbwechseln würde jedes Mal unterbrochen werden, wenn die #player_control-Ebene geändert wird. Dies ist unerwünscht, wenn andere Dinge ebenfalls an dieser Animationssequenz hängen, aber nicht von der Unterbrechung betroffen sind. Könnte auch einfach unerwünscht sein.
Ich hatte dasselbe Problem. Ich animiere einige Listenelemente beim Laden der Seite, sodass sie von der Seite hereinfliegen und dann die Navigation bilden. Beim Hovern zuckt der Text im Listenelement ein wenig zur Seite, aber wenn er nach dem Hover-Effekt in den Standardzustand zurückkehrt, wird die Animation erneut in die Warteschlange gestellt und das Listenelement kommt wieder von der Seite herein. Sehr störend.
Haben Sie oder hat jemand eine Lösung dafür gefunden?
Vielen Dank für dieses Skript.
Funktioniert super :)
Danke.
Es scheint, dass Android 2.2 nicht gut funktioniert, wenn Sie mehr als zwei Zustände in Prozent angeben
a.) Das funktioniert nicht
b.) Das funktioniert
Sie können das Problem nicht erkennen, wenn Sie den User-Agent in einem Webkit-Browser (z. B. Safari) ändern oder die Android SDK Tools verwenden. Der Fehler scheint nur bei bestimmten Android 2.2-Geräten aufzutreten.
getestet auf
HTC Wildfire
Mozilla/5.0 (Linux; U; Android 2.2.1; sv-se; HTC Wildfire Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
HTC Evo
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Danke „pirohy“
Sie haben einige der besten CSS-Tipps. Ihre Anleitungen sind oft besser (detaillierter und fortgeschrittener) als die von W3 Schools. Ich schätze Ihre qualitativ hochwertigen Beiträge, Chris. Danke.
Gibt es eine Möglichkeit, die Animation auf ein anderes div zu lenken? Sagen Sie, Sie erstellen ein Div wie eine Schaltfläche, damit das andere Div die Aktion ausführt?
In diesem Beispiel versuche ich, es so zu machen, dass beim Hover über der schwarzen Box die weiße Box aus dem Weg geht. Ich habe nichts darüber gesehen, wie man die Animation eines Divs durch Hovern über einem anderen auslöst, zumindest nicht mit reinem CSS.
Macht nichts, ich habe es herausgefunden.
Indem ich `.blackbox:hover` und `.whitebox` im selben Selektor platziere, verhält es sich genau so, wie ich es möchte.
Tolle Snippet übrigens. Sehr hilfreich.
Sie könnten es mit Verschachtelung und Geschwisterselektoren tun. Sie könnten beide Elemente in ein Container-Div legen und wenn Sie möchten, dass die weiße Box sich bewegt, wählen Sie etwas wie
HTML
CSS
div>#blackbox:hover + #whiteBox { attribute: new value; }Sie könnten dies mit Übergängen tun, oder Sie könnten eine Animation auf die gleiche Weise auslösen, wenn es nicht so einfach ist wie ein Übergang.
Wie setzen Sie die Animationsparameter auf die Parameter des Elements ab dem Zeitpunkt, an dem die Seite geladen wird?
z.B.
Was hier passiert, ist, dass das Element auf dem Bildschirm erscheint, dann nach 2 Sekunden verschwindet und die Animation durchläuft. Der gewünschte Effekt ist, dass es mit einer Opazität von 0 erscheint, bis die Animation beginnt, 2 Sekunden nach dem Laden der Seite.
Fehlt mir eine Eigenschaft?
Typisch!! Natürlich suche ich ewig, bevor ich poste, dann, 2 Minuten nachdem ich gepostet habe, suche ich weiter und finde die Antwort!
animation-fill-mode: backwards;war die Lösung.
Ich habe diese Website http://www.css3builder.com erstellt, sie automatisiert die Erstellung von CSS3-Galerien, indem sie die Berechnungen für die Keyframes usw. automatisch durchführt. Sie können eine in weniger als 1 Minute für alle Browser erstellen.
Nur eine Anmerkung, dass das kommende IE10 die Keyframe-Syntax ohne Präfixe unterstützen wird. Da IE9 keine Keyframe-Animationen unterstützt und niemand 'IE10pp' oder ähnliches verwenden wird, sollten alle Beispiele nun den '-ms-' Teil weglassen.
Außerdem sollten alle Beispiele auf dieser Seite aktualisiert werden, um die Standard-Syntax für IE10, das kommende FF16 und andere Browser einzufügen, die Keyframe-Animationen bald ohne Präfix unterstützen werden.
Seite aktualisiert! Danke Louis.
Unterstützt der Android-Browser 2.2 ihn?
Ich habe eine Animation in einer Endlosschleife. Gibt es eine Möglichkeit, ein Intervall zwischen den Schleifen einzustellen?
Die Eigenschaft „animation-delay“ fügt nur eine Verzögerung hinzu, bevor die Animation beginnt, und schleift dann ohne Verzögerung.
Ich weiß, dass ich dies mit einem einfachen `setInterval`-Skript lösen kann, aber ich versuche herauszufinden, ob es eine Möglichkeit gibt, das erwartete Ergebnis ohne dies zu erzielen.
Wenn ein iOS-Gerät gerade dabei ist, Animationen #1 abzuschließen, und ein Benutzer nach unten scrollt, bevor Animation #2 begonnen hat, werden Animationen, die später geladen werden sollen, einfach nicht geladen. Gibt es eine Problemumgehung?
Hey, es wäre großartig, wenn Sie die
steps()Timing-Funktion einbeziehen würden. Mehr Details finden Sie hier, zum Beispielhttps://hacks.mozilla.org/2011/09/taking-steps-with-css-animations/
Hallo Chris, für die grundlegende Animation können Sie den einfachen Code verwenden
.box{
background: white;
-webkit-transition: background 5s;
}
.box:hover{
background: olive;
-webkit-transition: background 1s;
}
Ich glaube nicht, dass das schon jemand gefragt hat
Wie verwende ich die Syntax
@-webkit-keyframesin SASS (oder LESS, was das angeht), wobei das@ein Sonderzeichen ist?Hey, wo kann ich diesen Code testen, indem ich ihn in meine Website implementiere?
d.h. Sandbox / Testumgebung ??
Danke für den Inhalt.
Das ist ein sehr hilfreicher Artikel. Ich frage mich nur, wie man Audio in JS einbinden könnte, damit es mit dem Play/Reset-Button synchronisiert wird?
Hier ist ein Beispiel einer FELIX the cat Folge von „The magic bag“, die komplett mit CSS3 Keyframe-Animationen erstellt wurde. Nur für Webkit-Browser implementiert. Kein JS, nur reines CSS3
http://pikcle.com/felix/
Ich konnte keine offensichtliche Möglichkeit finden, am Ende meiner Schleifenanimation (in diesem Fall von links nach rechts) eine Verzögerung einzufügen.
Letztendlich habe ich verwendet
<
pre>
@-webkit-keyframes pan {
0%, 10% { -webkit-transform: translate3d( 0%, 0px, 0px); }
90%, 100% { -webkit-transform: translate3d(-50%, 0px, 0px); }
}
Es ist nur ein wenig ärgerlich, eine gefälschte Animationsdauer haben zu müssen, um Verzögerungen auszugleichen.
Hallo Leute
Ist es möglich, 2 Animationen für ein Ziel zu kombinieren? Zum Beispiel das Drehen eines Menüs und währenddessen die Schriftgröße zu ändern? Bitte lasst es mich wissen. :)
Ja, das ist möglich
Ich habe viele Animationen hier verwendet http://pikcle.com/felix/ funktioniert nur in Webkit-Browsern, habe viele Arten von Animationen für einzelne Ziele kombiniert :)
Danke Melwyn.. Ich werde es ausprobieren… :)
Ich denke, es ist erwähnenswert, dass es neben
normalundalternatenoch weitere Eigenschaften füranimation-directiongibt; Dies sindreverseundalternate-reverse.Die MDN-Dokumentation enthält die vollständige Liste möglicher Werte, aber ihre Liste der Browserkompatibilität sieht etwas veraltet aus. Wenn jemand die Browserunterstützung für diese Eigenschaften bestätigen kann, wäre Mozilla sicher dankbar :)
Mahalo
Ist es überhaupt möglich, eine Animation mit der Eigenschaft content zu erstellen? So etwas wie…
Danke
Das ist mir kürzlich passiert. Kein Browser unterstützt es, aber laut den Spezifikationsautoren sollten sie es tun und werden irgendwann aufholen.
Ja, ich denke, die „Lösung“ für den Moment wäre, eine Maske über die „...“ zu legen und diese zu animieren, um das letzte Zeichen, die letzten beiden Zeichen usw. abzudecken.
Weiß jemand, wie man Keyframe-Animationen daran hindert, beim Ändern der Browsergröße auszulösen, wenn Breakpoints überschritten werden? Wie wäre es beim Laden der Seite?
Wir haben eine Animation in einer Endlosschleife. Gibt es eine Möglichkeit, ein Intervall zwischen den Schleifen festzulegen?
Die Eigenschaft „animation-delay“ liefert nur eine Verzögerung, bevor diese Animation beginnt, und dann läuft sie ohne Verzögerung.
Ich verstehe, dass ich das mit einem einfachen „setInterval“-Code lösen kann, aber ich möchte herausfinden, ob es eine Möglichkeit gibt, das erwartete Ergebnis zu erzielen, ohne darauf zurückgreifen zu müssen.
Hallo, ich möchte mehrere Elemente (Divs) mit unterschiedlichen Animationen haben. Ich habe also .item1, wie Sie unten sehen können. Aber ich möchte eine Animation für ein anderes Element erstellen (zum Beispiel: .item2 mit einer anderen Slide-Animation/Position), aber wie kann ich verschiedenen Elementen unterschiedliche Animationen zuweisen? Hoffe, jemand kann helfen! Danke!
.item1 {
position: absolute;
background:url(../img/item.png) 0 0 no-repeat;
top: -900px;
width: 400px;
height: 887px;
-webkit-animation: slide 0.5s forwards;
-webkit-animation-delay: 0.5s;
animation: slide 0.5s forwards;
animation-delay: 2s;
animation-name: slide;
}
@-webkit-keyframes slide {
100% { top: -300px; }
}
@keyframes slide {
100% { top: -300px; }
}
Hallo! Ich habe jetzt so etwas: aber ich weiß nicht, ob das der richtige Weg ist (nennt man es slide 1 und slide 2)...
Weiß jemand, ob Compass/Sass Keyframe-Animationen nativ unterstützt?
Ich bin mir sicher, dass sie Unterstützung haben, aber ich verwende ein paar einfache Mixins, die ich geschrieben habe
Danke fürs Teilen, Josh!
Kann ich das webkitAnimationDuration (JavaScript) Äquivalent für Mozilla und Safari-Browser mit derselben Unterstützung in JavaScript erhalten?
Die Reihenfolge ist egal, außer wenn Dauer und Verzögerung verwendet werden, müssen sie in dieser Reihenfolge angegeben werden. Im folgenden Beispiel sind 1s = Dauer, 2s = Verzögerung, 3 = Iterationen.“
Das funktioniert nicht, wenn Sie die Anzahl der Iterationen auf unendlich setzen.
Stattdessen muss `infinite` am Ende stehen, oder?
Danke für diese nützlichen Snippets! :)
Ich habe eine Demo erstellt. Schau sie dir an
http://jsbin.com/alOPUko/11/edit
DANKE Admin. Das ist ein sehr hilfreicher Artikel. Ich frage mich nur, wie man Audio in JS einbinden könnte, damit es mit dem Play/Reset-Button synchronisiert wird?
Viel Glück… Weiter so
Schöne Ressource, aber gibt es eine Möglichkeit, Keyframe-Animationen beim Ändern der Browsergröße zu stoppen, wenn Breakpoints überschritten werden? Wie wäre es beim Laden der Seite?
Ich versuche, diesen Code mit einem anderen CSS-Code zu mischen, aber das Problem, auf das ich stoße, ist, dass zur Laufzeit nur ein Code Wirkung zeigt, während der andere nicht angezeigt wird.
Das Erstellen eines reduzierten Testfalls ist der richtige Weg bei Problemen wie diesen.
Kann ich das webkitAnimationDuration (JavaScript) Äquivalent für Mozilla und Safari-Browser mit derselben Unterstützung in JavaScript erhalten.
Übrigens, danke für ein so schönes Tutorial.
Das ist genau das, wonach ich gesucht habe..so einfach zu implementieren, Mann. Gute Arbeit und sieht auch süß aus :)
Beim Experimentieren habe ich festgestellt, dass die Webkit-Verzögerungssyntax lautet
“-webkit-animation-delay: 5s;”
Ziemlich einfach!
http://www.results-2014.com/
Alle, die ein Zeitintervall zwischen unendlichen/Schleifenanimationen einfügen wollten, bitte folgen Sie dieser Stackoverflow-Lösung
http://stackoverflow.com/questions/18812055/css-animation-with-time-interval
Viel Spaß mit CSS3-Animationen!
Gute Arbeit, das ist genau das, wonach ich gesucht habe, CSS3-Animationen sind schwierig, weil die Syntax für mich sehr schwierig war, aber Sie haben großartige Arbeit geleistet, Sie verstehen andere auf einfache Weise. Danke fürs Teilen.
Weiß jemand, wie man Keyframe-Animationen daran hindert, beim Ändern der Browsergröße auszulösen, wenn Breakpoints überschritten werden? Wie wäre es beim Laden der Seite?
Hier habe ich Probleme
http://www.resultsnews.com/
Gibt es eine Möglichkeit, Keyframe-Animationen beim Neuskalieren des Browsers zu stoppen? Ich habe Probleme auf meiner Website http://bit.ly/1j84UFh
Habe hier eine Animation erstellt http://jsfiddle.net/ipsjolly/DDT9b/
Aber sie ist nicht so flüssig. Sie springt ein wenig, wenn sie von einem Frame zum anderen wechselt. Wie kann ich sie „wabbeliger“ machen, wie die Schaltflächen in Candy Crush.
Ich erstelle eine Animation eines Charakters, der seinen Kopf nach rechts und links bewegen und gleichzeitig seine Hände öffnen und schließen muss.
Es kommt vor, dass in CSS eine Animation mit zwei Eingaben vorliegt und beide den Fill-Mode-Parameterwert „forwards“ haben. Die erste Animation wird korrekt ausgeführt, aber die zweite wird nie ausgeführt. Wenn ich das „forwards“ der ersten Animation entferne, läuft die zweite korrekt, aber die erste Animation endet abrupt und kehrt zu ihrem Ausgangspunkt zurück.
Kann mir jemand sagen, wie ich das beheben kann.
Das ist mein CSS-Code
[Admin-Hinweis]: Großes Code-Dump gelöscht – Sie können gerne einen Link zu einem Pen auf CodePen posten.
Die Seite ist sehr schön und sehr hilfreich für Anfänger
Ich lande wieder auf dieser Seite,
Hey Chris, hast du eine Idee, wie man einen magischen Mixin erstellt, der CSS3 Keyframe-Animationen inklusive CSS3 Browser-Vendor-Präfixen erstellt?
Als ich einmal versuchte, einen Mixin aus dem Internet zu verwenden, ergab er etwas wie das Folgende, wo ich alle anderen Browser-bezogenen Codes ignorieren wollte, während es unter @-webkit war.
@-webkit-keyframes hover-icon {0% {
-webkit-transform: scale(1, 1);
-moz-transform: scale(1, 1);
-ms-transform: scale(1, 1);
-o-transform: scale(1, 1);
transform: scale(1, 1);
}
100% {
-webkit-transform: scale(1.2, 1.2);
-moz-transform: scale(1.2, 1.2);
-ms-transform: scale(1.2, 1.2);
-o-transform: scale(1.2, 1.2);
transform: scale(1.2, 1.2);
}
}
Hier ist, was Sie suchen: http://leaverou.github.io/prefixfree/
Weiß jemand, wie man Keyframe-Animationen daran hindert, beim Ändern der Browsergröße auszulösen, wenn Breakpoints überschritten werden? Wie wäre es beim Laden der Seite?
Danke Chris! Immer wenn ich eine Frage habe – bist du da. Danke nochmal!!
Vielen Dank für die Demo. Das hat meine Animationsprobleme in IE behoben.
Das ist ein äußerst wichtiger Punkt
Internet Explorer hat keinen Anspruch auf die Spezifikation der W3-Standards.
Das muss aktualisiert werden.
Ernsthaft – Internet Explorer war zu lange der Fluch jedes Webentwicklers, als dass sie diesen Kommentar beanspruchen könnten. Es darf nicht einmal für eine Sekunde verwechselt werden, dass Internet Explorer der Grund dafür ist, dass irgendein moderner CSS-Standard existiert.
Dieser Kommentar sollte sein
[1]: Firefox 16+, IE 10+.
Hallo Chris, Sie können -webkit-animation-delay verwenden, um die Effekte zu verzögern. Es wäre viel besser, wenn Sie auch eine Demo hinzufügen könnten.
Hallo, ich muss einen Ripple-Effekt mit 4 Kreisen machen. Könntet ihr mir bitte dabei mit CSS3 helfen. Vielen Dank im Voraus.
Ich glaube nicht, dass es so funktioniert
Vielen Dank dafür. Funktioniert hervorragend mit HTML5-Video, man muss nur das -webkit-Präfix beachten
Gibt es einen Grund, warum Sie die repetitiven Deklarationen nicht in einen kommagetrennten Selektor kondensieren? z.B.
Es wäre gut, wenn wir die verschiedenen @keyframes wie CSS-Selektoren bündeln könnten (um Wiederholungen zu sparen)
@keyframes A, @-webkit-keyframes A, @-o-keyframes A {
... opacity: 1; ... /*kein [-*-]transform…*/
}
Aber es funktioniert anscheinend nicht, es wird nicht erkannt, ich habe es versucht…
(Nur für den Fall, dass jemand anders die gleiche Idee hat)
Es funktioniert gut in allen Browsern mit Zoom rein und raus.
Aber in Safari (alle Versionen) bricht es zusammen, wenn man rein und raus zoomt.
Kann jemand eine Lösung vorschlagen, BITTEEEEE.
Danke vielmals und vielen Dank.
vergessen, den Demo-Link hier einzufügen, den Sie dort oben gepostet haben
http://jsfiddle.net/simurai/CGmCe/light/
Gibt es eine LÖSUNG für SAFARI ZOOM REIN oder RAUS?
Diese Keyframe-Slide ist ein interessantes Werkzeug, aber ich finde nur Beispiele für die Verwendung mit Bildern. Ist es möglich, dieses Framework für reine Textfarbwechsel zu verwenden? Ich meine Text wie in einem p- oder span-Klassen-Satz, bei dem es nur den Text betrifft, ohne Hintergrundeffekte.
Es scheint, dass Safari 9 ein Problem mit „0% {}“ bei der Deklaration von Keyframes hat. Wenn wir also einfache Animationen mit nur 2 Keyframes haben, können wir ‚from‘ und ‚to‘ verwenden. Oder wir können einfach ‚0‘ statt ‚0%‘ verwenden.
Hallo Chris. Ist es in Ordnung, eine Zahl in der Keyframe-Namen-Deklaration zu verwenden? z.B. banner_circle_10, banner_circle_11 oder sollte es banner_circle_ten, banner_circle_eleven usw. sein?
Das erklärt eigentlich nichts… es gibt nur einige Beispiele, ohne zu erklären, wie oder warum sie funktionieren, oder was die Regeln sind. Was sind Keyframes und wann/warum sollte man sie verwenden? Wie?? Was??
Gibt es etwas Bestimmtes, das Sie wissen müssen?
Es gibt einen Ort, um Fragen zu stellen…
Danke dafür! Immer noch ein sehr gültiger und nützlicher Artikel!
Erlauben Sie mir, einen kleinen Fehler in der Eigenschaftstabelle hervorzuheben
„duration-count“ sollte „iteration-count“ sein
Ich verwende Textvergrößerung und sie animiert sich in Safari nicht richtig,
Der Text blinkt zu einer großen Größe, bevor er animiert wird. Gibt es einige Fehler bei Safari in Bezug auf die Animation von Schriftgröße? Kein Problem mit Firefox oder Chrome.
Spielt es überhaupt eine Rolle, ob die @keyframes vor oder nach der Stelle deklariert werden, von wo sie aufgerufen werden?
Ich bin mir zu 99% sicher, dass das keine Rolle spielt.
Hallo!
Das ist genau das, was ich gesucht habe. Es funktioniert großartig in Chrome, aber in IE11 bekomme ich nichts.
Ich habe etwas Text in das Div eingefügt – der Text wird angezeigt, aber es gibt KEINE Hintergrundfarbe oder einen Rahmen darum.
Fehlt mir etwas in der HTML-Datei, damit es funktioniert?
Gibt es Möglichkeiten, Frames ohne from/to oder Prozentsätze zu deklarieren? Wirklich ärgerlich, die Prozentsätze berechnen und alle ändern zu müssen, wenn man einen Frame hinzufügt.
Hallo Leute, ich verwende die Animation von 0deg bis 360deg, und so dreht sich das Objekt um 360 Grad, aber ich möchte, dass es sich als Animation dreht, während es stillsteht, sich nicht im Kreis bewegt. Irgendwelche Tipps?
Ich verwende eine Transform-Keyframe-Animation. Allerdings sind der obere Abschnitt und dieser Abschnitt Parallax, was beim Zoomen einen seltsamen Leerraum am unteren Rand erzeugt. Selbst mit gesetzten Höhen, overflow:hidden usw. Funktioniert das mit mehreren Parallax-Abschnitten einfach nicht gut?
Gibt es oder gab es jemals einen Grund, die Präfixe für den Schlüssel „keyframes“ zu verwenden? Ich kann keinen Präfixer finden, der die „keyframes“-Präfixe hinzufügt, einschließlich Sass.
Kann man dies verwenden, um die Prozentstufen auf einem abgestuften Hintergrund zu animieren?
Ich versuche, einen „Gleem“-Effekt zu erzielen, bei dem ein dünner abgestufter weißer Schein von einer Seite eines LI-Elements zur anderen läuft, so wie die Scheinwerfer eines Autos einen Raum beleuchten, wenn man nachts auf die Auffahrt fährt.
Hallo, darf ich fragen, wie man eine Animation an einem bestimmten Keyframe stoppt und zum nächsten übergeht? Wenn ich mehrere Animationen nacheinander verbinden möchte, muss ich die eine stoppen und mit der nächsten fortfahren.
Vielen Dank, erstaunlicher Artikel, endlich habe ich das beste CSS-Animations-Tutorial gefunden.
Wenn ein Keyframe transform enthält, wie sollte er dann mit Präfix versehen werden? Laut ShouldIPrefix.com benötigen wir nur -webkit für animation und -webkit und -ms für transform.
Ich habe noch nie eine solche Art von Tutorial gesehen. Ich muss sagen, die Art von visuellen Darstellungen, die es hier bietet, reicht aus, um einen Kerl Animationscode verstehen zu lassen.