Transition
Eine Transition besteht in der Regel aus zwei Zuständen (Schlüsselbilder), zwischen denen eine Animation abläuft.
Die Transition entsteht durch veränderte Attributwerte, die zu definieren sind.
Der Start muss über ein Ereignis ausgelöst werden, in den folgenden Beispielen wird das ein MouseOver mit der Pseudo-Klasse Hover sein.
transition-property
Mit transition-property legen sie fest, welche Eigenschaften dynamisch verändert werden sollen, transition-property ist nicht vererbbar.
div {
width: 100px;
height: 100px;
background: yellow;
transition-property: width, height;
}
div:hover {
width: 300px;
height: 300px;
}
Mögliche Werte für transition-property
- none: Keine Transition
- all: Alle Eigenschaften (Standardwert)
- Mit Komma getrennte Eigenschaften
transition-duration
Mit transition-duration legen sie die Dauer des Effekts in Sekunden(s) oder Millisekunden(ms) fest.
Standardwert ist 0s (kein Effekt), transition-duration ist nicht vererbbar.
div {
width: 100px;
height: 100px;
background: red;
transition-property: width, height;
transition-duration: 5s;
}
div:hover {
width: 300px;
height: 300px;
}
Mögliche Werte für transition-duration
- Zeitangabe in Sekunden oder Millisekunden
transition-timing-function
Mit transition-timing-function legen sie die Geschwindigkeitskurve (Geschwindigkeit vom Start bis zum Ende) fest, transition-timing-function ist nicht vererbbar.
div {
width: 100px;
height: 100px;
background: red;
transition-property: width, height;
transition-duration: 5s;
transition-timing-function: linear;
}
div:hover {
width: 300px;
height: 300px;
}
Mögliche Werte für transition-timing-function
- ease: Standardwert, Kurve = langsam, schnell, langsam
- linear: gleichmäßige Geschwindigkeit
- ease-in: Geschwindigkeit mit langsamen Start
- ease-out: Geschwindigkeit mit langsamen Ende
- ease-in-out: Geschwindigkeit mit langsamen Start und Ende
- cubic-bezier(n,n,n,n): eigene Kurven bestimmen (bezier),
mögliche Werte zwischen 0 und 1.
transition-delay
Mit transition-delay legen sie die Verzögerung vor dem Start in Sekunden(s) oder Millisekunden(ms) fest, transition-delay ist nicht vererbbar.
div {
width: 100px;
height: 100px;
background: red;
transition-property: width, height;
transition-duration: 5s;
transition-timing-function: linear;
transition-delay: 2s;
}
div:hover {
width: 300px;
height: 300px;
}
Mögliche Werte für transition-delay
- Zeitangabe in Sekunden oder Millisekunden
transition
Die transition-Eigenschaft ist eine Zusammenfassung von transition-property, transition-duration, transition-timing-function und transition-delay.
Wenn Sie zwei Zahlenwerte angeben, ist der erste die Dauer (transition-duration), der zweite die Verzögerung (transition-delay) der Animation. transition ist nicht vererbbar.
div {
width: 100px;
height: 100px;
background: red;
transition: width, height 5s linear 2s;
}
div:hover {
width: 300px;
height: 300px;
}
Animation
Eine Transition ist ein animierter Übergang zwischen genau zwei Keyframes (Schlüsselbildern), der von einem Ereignis ausgelöst wird.
Eine Animation kann beliebig viele Keyframes haben und braucht kein Ereignis zum auslösen.
Die Animation läuft von einem Keyframe zum nächsten. Mit CSS kann man einstellen, dass eine Animation am Ende looped, rückwärts läuft oder zu Ende ist.
@keyframes
Eine Animation hat beliebig viele Keyframes (Schlüsselbilder). Die Animation läuft von einem Keyframe zum nächsten,
mit Keyframes werden also Sclüsselbilder definiert.
Mit der @keyframes-Regel werden wichtige Bestandteile erstellt:
- Ein Name für die Animation
- Ein Start- und ein Endpunkt mit den Schlüsselwörtern from und to
- Oder mehrere Start- und Endpunkte als Prozentwerte
- Den Zustand des Elements im jeweiligen Schlüsselbild mit CSS-Eigenschaften
Dia Syntax der @keyframes-Regel sieht wie folgt aus:
@keyframes example {
from {background-color: red;}
to {background-color: yellow;}
}
/*Alternativ*/
@keyframes example {
0% {background-color: red;}
100% {background-color: yellow;}
}
Diese Animation besteht aus zwei Schlüsselbilder, achten sie auf das korrekte Setzen der geschwungenen Klammern. Auf diese Weise kann man weitere Schlüsselbilder einfügen.
@keyframes example {
0% {background-color: red;}
25% {background-color: yellow;}
50% {background-color: blue;}
100% {background-color: green;}
}
animation-name
Mit der animation-name-Eigenschaft wird der name der @keyframes-Regel im gewünschtem Element aufgerufen,
animation-name ist nicht vererbbar.
div {
animation-name: example;
}
Mögliche Werte für animation-name
- Keyframe-Name
- none: Standardwert - keine Animation
animation-duration
Mit der animation-duration-Eigenschaft wird die Dauer der Animation in Sekunden (s) oder Millisekunden (ms)
festgelegt, animation-duration ist nicht vererbbar.
div {
animation-name: example;
animation-duration: 2s;
}
Mögliche Werte für animation-duration
- Zeitangabe Standarwert = 0
animation-timing-function
Mit animation-timing-function legen sie die Geschwindigkeitskurve (Geschwindigkeit vom Start bis zum Ende) fest, animation-timing-function ist nicht vererbbar.
div {
animation-name: example;
animation-duration: 2s;
animation-timing-function: linear;
}
Mögliche Werte für animation-timing-function
- ease: Standardwert, Kurve = langsam, schnell, langsam
- linear: gleichmäßige Geschwindigkeit
- ease-in: Geschwindigkeit mit langsamen Start
- ease-out: Geschwindigkeit mit langsamen Ende
- ease-in-out: Geschwindigkeit mit langsamen Start und Ende
- cubic-bezier(n,n,n,n): eigene Kurven bestimmen (bezier),
mögliche Werte zwischen 0 und 1
- steps(Anzahl): positive Zahl, legt die Anzahl der Schritte fest
- steps(Anzahl, end): (Standardwert) Animation wird am Ende des Schritts ausgeführt
- steps(Anzahl, start): Animation wird am Beginn des Schritts ausgeführt
- step-start: Equivalent zu steps(1,start)
- step-end: Equivalent zu steps(1,end)
animation-delay
Mit animation-delay legen sie die Verzögerung vor dem Start in Sekunden(s) oder Millisekunden(ms) fest, animation-delay ist nicht vererbbar.
div {
animation-name: example;
animation-duration: 2s;
animation-timing-function: linear;
animation-delay: 2s;
}
Mögliche Werte für animation-delay
- Zeitangabe in Sekunden oder Millisekunden
animation-iteration-count
Mit animation-iteration-count legen sie fest, wie oft die Animation laufen soll, animation-iteration-count ist nicht vererbbar.
div {
animation-name: example;
animation-duration: 2s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
}
Mögliche Werte für animation-iteration-count
- Zahl: wie oft soll die Animation laufen, Standardwert ist 1
- infinite: Endlosschleife
animation-direction
Mit animation-direction legen sie fest, in welcher Richtung die Animation laufen soll, animation-direction ist nicht vererbbar.
div {
animation-name: example;
animation-duration: 2s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
Mögliche Werte für animation-direction
- normal: Animation läuft Vorwärts (Standardwert)
- reverse: Animation läuft Rückwerts
- alternate: 1x vor dann zurück usw.
- alternate-reverse: 1x zurück dann vor usw.
animation-fill-mode
Mit animation-fill-mode legen sie den Zustand des Elements am Ende der Animation fest, animation-fill-mode ist nicht vererbbar.
div {
animation-name: example;
animation-duration: 2s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-fill-mode: forwards;
}
Mögliche Werte für animation-fill-mode
- none: zurück zum initialen Zustand am Ende der Animation (Standardwert)
- forwards: bleibt beim ersten Keyframes stehen wendet die Eigenschaften vor dem ersten Keyframe an
- backwards: bleibt beim letzten Keyframes stehen wendet die Eigenschaften nach dem letzten Keyframe an
- both: bleibt beim letzten Keyframe stehen wendet das CSS vor dem ersten und nach dem letzten Keyframe an
animation-play-state
Mit animation-play-state legen sie fest, ob die Animation läuft oder pausiert, animation-play-state ist nicht vererbbar.
Diese Eigenschaft ist nützlich, wenn Sie die Animation durch JavaScript steuern wollen.
div {
animation-name: example;
animation-duration: 2s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-fill-mode: forwards;
animation-play-state: paused;
}
Mögliche Werte für animation-play-state
- running: Animation läuft (Standardwert)
- paused: Animation läuft nicht
animation
Die animation-Eigenschaft ist eine Zusammenfassung von allen acht Eigenschaften.
Wenn Sie zwei Zahlenwerte angeben, ist der erste die Dauer (animation-duration), der zweite die Verzögerung (animation-delay) der Animation. animation ist nicht vererbbar.
div {
animation: example 2s linear 2s infinite alternate forwards;
}
2D Transform
2D Transformationen ermöglichen, dass Elemente in einem zweidimensionalen Raum transformiert werden
(x- und y-Achse). 2D Transformationen stellen zwei Eigenschaften zur Verfügung, transform
und transform-origin.
transform
Die transform-Eigenschaft gibt es als 2D und 3D Version. Die Methoden von transform sind
umfangreich, sehr komplex ist die matrix-Methode mit 6 Zahlenwerten, damit kann man bewegen,
skalieren, rotieren, verzerren mit nur einer Methode gleichzeitig.
div {
transform: matrix(0.586,0.8,-0.8,0.586,10,0);
}
Weitere Methoden der transform-Eigenschaft
- none: Keine Transformation
- matrix(n,n,n,n,n,n): 2D transformation, Matrix mit 6 Zahlenwerte
(bewegen, skalieren, rotieren, verzerren)
- translate(x,y): (x- und y-Achse) positioniert das Element um n-Pixel nach rechts und unten,
negative Werte nach links und oben
- translateX(n): positioniert das Element entlang der x-Achse
- translateY(n): positioniert das Element entlang der y-Achse
- scale(x,y): mit einem Wert wird proportional skaliert, zwei Werte für Breite und Höhe. Der Wert von 1 steht für 100%, hat also keinen Skalierungseffekt. Entsprechend verkleinert der Wert 0.5 um 50% und vergrößert der Wert 2 um 200%
- scaleX(n): skaliert die Breite des Elements
- scaleY(n): skaliert die Höhe des Elements
- rotate(angle): Rotation in Grad Werte von 0 bis 360deg
- skew(x-angle,y-angle): Neigung oder Scherung (Parallelogramme) Werte von 0 bis 180deg – auch negativ, entweder ein gemeinsamer Wert für die x- und y-Achse oder zwei Werte mit einem Komma getrennt
- skewX(angle): Neigung oder Scherung entlang der x-Achse
- skewY(angle): Neigung oder Scherung entlang der y-Achse
transform-origin
Mit der Eigenschaft transform-origin können Sie einen Mittelpunkt (Drehpunkt) für transform:rotate() festlegen, um den ein Element gedreht wird. Der Standardwert ist 50% 50%. Setzt man die beiden
Werte auf 0% so ist der Drehpunkt oben links. Den Drehpunkt definieren sie mit zwei Angaben, einen für die x-Achse
und einen für die y-Achse.
div {
transform: rotate(45deg);
transform-origin: 20% 40%;
}
Weitere Werte für transform-origin
- x-Achse (Längenangabe, Prozentangabe, left, center, right)
- y-Achse (Längenangabe, Prozentangabe, top, center, bottom)