Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
Vorwort
1 Prinzipien des modernen Webdesigns
2 Projektmanagement
3 Konzeption und Strategie
4 Responsive Webdesign
5 Informationsarchitektur
6 Gestaltungsgrundlagen
7 Screendesign
8 Layout und Raster
9 Farbe im Webdesign
10 Typografie
11 Bilder und Grafiken
12 Navigations- und Interaktionsdesign
13 Webdesign-Stile und -Trends
14 Animationen
15 Website-Typen
16 Tipps, Tricks und Tools
Stichwortverzeichnis

Download:
- Beispieldateien, ca. 3.64 MB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Webdesign von Martin Hahn
Das Handbuch zur Webgestaltung
Buch: Webdesign

Webdesign
Pfeil 14 Animationen
Pfeil 14.1 Animationen mit CSS
Pfeil 14.1.1 »hover«-Effekte mit CSS3-Transitions
Pfeil 14.1.2 CSS3-Transform – Verzerren, Skalieren und Drehen
Pfeil 14.2 Animationen und Interaktivität mit JavaScript
Pfeil 14.2.1 JavaScript-Bibliotheken
Pfeil 14.3 Interaktive Elemente
Pfeil 14.3.1 Bildergalerie
Pfeil 14.3.2 Tabs
Pfeil 14.3.3 Accordion
Pfeil 14.3.4 Content-Slider
Pfeil 14.3.5 Header-Slideshow
Pfeil 14.3.6 Modalboxen
Pfeil 14.3.7 Tooltip
Pfeil 14.3.8 Weitere Animationen und Effekte
Pfeil 14.4 Audiovisuelle Elemente
Pfeil 14.4.1 Das HTML5-Videoelement
Pfeil 14.4.2 Das HTML5-Audioelement
Pfeil 14.5 Fazit
 
Zum Seitenanfang

14    Animationen Zur vorigen ÜberschriftZur nächsten Überschrift

Animationen sind für Webseiten ein wenig wie das Salz in der Suppe. Der geschickte Einsatz von Animationen und Effekten gibt einer Webseite das gewisse Etwas, zu viel ist störend, irritierend, »schmeckt einfach nicht«. Bei zu wenig davon kann es jedoch auch schnell langweilig werden. In diesem Kapitel geht es um den wohldosierten Einsatz von Animationen mithilfe von CSS und JavaScript/jQuery.

 
Zum Seitenanfang

14.1    Animationen mit CSS Zur vorigen ÜberschriftZur nächsten Überschrift

Die größte Interaktivität, die CSS jahrelang liefern konnte, war der hover-Effekt, also die unterschiedliche Darstellung eines Elements bei einem Mouseover. Dieser ruckartige Wechsel, sobald die Maus das Element berührte, wurde hauptsächlich eingesetzt, um Links deutlicher hervorzuheben. Diese Animationen mit :hover wirkten wie ein An-/Aus-Schalter. Der hover-Effekt tut damit zwar seinen Dienst, aber die Bedürfnisse sind gestiegen, und die technischen Möglichkeiten haben sich verbessert.

 
Zum Seitenanfang

14.1.1    »hover«-Effekte mit CSS3-Transitions Zur vorigen ÜberschriftZur nächsten Überschrift

Mit CSS3 ist es nun möglich, Elemente auch zu animieren. Dies kann die Aufmerksamkeit stärker auf bestimmte Elemente lenken und außerdem die User Experience (siehe Kapitel 3, »Konzeption und Strategie«) verbessern.

Transitions-Eigenschaften

Es sind gut 40 Eigenschaften, die sich mit CSS-Transitions verändern lassen, von background-color über opacity bis z-index. Der W3C bietet einen Überblick: w3.org/TR/css3-transitions/#animatable-css. Der animierte Wechsel von display:none zu display:block funktioniert allerdings nicht.

Mit den sogenannten CSS3-Transitions lassen sich einfache Animationen realisieren. Über einen festgelegten Zeitraum wird der Zustand eines Elements verändert. So lassen sich beispielsweise weiche Übergänge auch ohne den Einsatz von JavaScript oder Flash realisieren. Alle modernen Browser bis auf den Internet Explorer 9 unterstützen die transition-Eigenschaft. Um die Animation mit Transitions zu beeinflussen, stehen verschiedene CSS3-Eigenschaften zur Verfügung:

Ein netter Mouseover-Effekt – aus Quadraten werden Kreise bei namesforchange.org.

Abbildung 14.1    Ein netter Mouseover-Effekt – aus Quadraten werden Kreise bei namesforchange.org.

CSS3-Eigenschaft

Bedeutung

transition-property
(Pflichtangabe)

Angabe der Eigenschaft(en), die verändert werden soll(en). all bezieht sich auf alle animierfähigen Eigenschaften.

transition-duration
(Pflichtangabe)

Angabe der Dauer für den Übergang (kann in Millisekunden oder Sekunden angegeben werden)

transition-delay

Angabe einer Verzögerung, bis der Übergang einsetzt (in Millisekunden oder Sekunden). Wird in der Praxis seltener eingesetzt, da der Anwender sofort merken soll, dass eine Animation stattfindet.

transition

Kurzschreibweise, mit der alle Werte in einer Anweisung geschrieben werden können

transition-timing-
function

Veränderung des zeitlichen Ablaufs des Übergangs. Folgende Schlüsselwörter sind möglich:
linear – gleichförmiger Übergang (wie er auch ohne diese Angabe erfolgen würde)

ease-in – langsamer Anfang, schnell am Ende

ease-in-out – langsamer Anfang, langsames Ende, in der Mitte schneller

ease – normaler Anfang, normales Ende, dafür in der Mitte beschleunigt

ease-out – schneller Anfang, langsam am Ende

cubic-bezier – Feintuning in Form einer definierten mathematischen Bézierkurve

Tabelle 14.1    Die CSS3-Transitions-Eigenschaften

Ein typischer Anwendungsfall für CSS3-Transitions sind Buttons und Navigationspunkte. Anstelle eines normalen ruckartigen Übergangs bekommen diese so einen weichen Übergang, was für den Betrachter angenehmer wirkt. Die allgemeine Definition sieht folgendermaßen aus:

.element {
transition[transition-property] [transition-duration] [transition-timing-function] [transition-delay];
}

Listing 14.1    Allgemeine transition-Definition

Um für einen Button einen weicheren Übergang zu definieren, könnten die Angaben wie folgt aussehen:

a{
background-color#00a0db;
transitionbackground-color 0.75s ease;
}
a:hover{
background-color#00374f;
}

Listing 14.2    transition-Definition für eine Änderung der Hintergrundfarbe

Download

Das Transition-Beispiel »CSS3-transitions.html« finden Sie unter BeispielmaterialKapitel_14.

Anstatt alle Eigenschaften einzeln aufzulisten, können sie auch in einer Kurzschrift zusammengefasst werden. Dabei werden im Element (hier der Link) der Ausgangswert (die Hintergrundfarbe) und die Art des Übergangs (die Transition) definiert. Im hover-Zustand wird dann der Endwert definiert. Zwischen Ausgangs- und Endwert verläuft dann die Animation. In der Transition muss dann entsprechend angegeben werden, welche Eigenschaft (hier also background-color) verändert werden soll.

Das Webdesign-Blog codrops bietet immer wieder tolle Codebeispiele, so auch hier für nette Buttonanimationen: tympanus.net/Development/CreativeButtons.

Abbildung 14.2    Das Webdesign-Blog codrops bietet immer wieder tolle Codebeispiele, so auch hier für nette Buttonanimationen: tympanus.net/Development/CreativeButtons.

Verschiedene Beispiele für Transitions

Abbildung 14.3    Verschiedene Beispiele für Transitions

Manche Browserversionen unterstützen CSS-Eigenschaften schon, bevor sie Standard werden. Um diese Eigenschaften als Webdesigner einzusetzen, gibt es die Browserpräfixe. Für die transition-Eigenschaft sehen die Präfixe folgendermaßen aus:

-webkit-transitionbackground-color 0.75s ease;
-moz-transitionbackground-color 0.75s ease;
-ms-transitionbackground-color 0.75s ease;
-o-transitionbackground-color 0.75s ease;
transitionbackground-color 0.75s ease;

Listing 14.3    Die transition-Eigenschaft mit allen Browserpräfixen

Das sieht nach sehr viel Schreibarbeit aus. Die Kontrolle bei caniuse (caniuse.com/#search=transition) zeigt, dass das Präfix -webkit ausreicht, um ältere Browser anzusprechen.

-webkit-transitionbackground-color 0.75s ease;
transitionbackground-color 0.75s ease;

Listing 14.4    Die transition-Eigenschaft mit dem notwendigen Browserpräfix

Browserunterstützung

caniuse.com/#search=transition zeigt, welche Browser unterstützt werden und für welche Präfixe eingesetzt werden sollten.

Wichtig ist vor allem zu sehen, dass der Internet Explorer vor Version 10 die transition-Eigenschaften NICHT unterstützt. In unserem kleinen Beispiel hätte das nur die Konsequenz, dass der Button eben nicht weich animiert dargestellt würde, sondern wie ein normaler Link mit hover-Zustand, was vertretbar wäre. Animationen sollten also in diesem Fall keine allzu wichtigen Inhalte transportieren, die für Anwender älterer IE-Versionen nicht sichtbar wären.

Should i prefix?

Ein Präfix einzusetzen ist eher lästig. Die Webseite shouldiprefix.com gibt einen Überblick, welche neuen CSS-Eigenschaften Präfixe brauchen, und liefert diese dann gleich mit.

Die CSS-Transitions werden bei allen Arten von Mouseover-Zuständen eingesetzt – in der Navigation, um das Dropdown-Menü (siehe Abschnitt 12.1.4, »Dropdown-Menü«) einzublenden, bei Links und Buttons sowie bei Teasern, vor allem bei Bild-Teasern, um Text beim Mouseover anzuzeigen.

typehype.com ist voller dezenter transition-Animationen – hier sehen Sie z. B. ein Dropdown-Menü (oben) und Teaser-Bilder (unten).

Abbildung 14.4    typehype.com ist voller dezenter transition-Animationen – hier sehen Sie z. B. ein Dropdown-Menü (oben) und Teaser-Bilder (unten).

SCHRITT FÜR SCHRITT

Bilder-»hover«-Effekte

Gerne werden (Bilder-)Teaser bei einem Mouserover animiert. Eine leicht animierte Veränderung zeigt dem Anwender optisch noch besser, dass dies ein Link ist, und verbessert das Nutzungserlebnis. Es gibt verschiedene Möglichkeiten, Elemente zu animieren. Weiter unten werden noch weitere vorgestellt, in diesem Tutorial werden wir uns auf Transitions konzentrieren.

Download

Die Datei »CSS3-teaser-hover.html« finden Sie unter BeispielmaterialKapitel_14.

HTML-Struktur

Zuerst bauen wir eine HTML-Struktur auf. Ein verlinktes Bild kommt in einen div-Container:

<div class="teaser" id="teaser-1">
<a href="#"><img src="http://lorempixel.com/300/300/business/" alt="Teaser-Text 1"></a>
</div>

Listing 14.5    Die HTML-Struktur mit einem div-Container

Über die Klasse und ID könnten wir den Container formatieren und animieren.

Zwei Kreis-Teaser mit animiertem Mouseover-Effekt

Abbildung 14.5    Zwei Kreis-Teaser mit animiertem Mouseover-Effekt

CSS-Struktur

Die folgende CSS-Formatierung konzentriert sich auf die wichtigsten Eigenschaften. Als Beispiel wählen wir eine Vergrößerung des Bildes, bei der eher hereingezoomt wird und die Ausmaße des Bildes nicht verändert werden.

Zuerst wird der Container definiert. Dazu gehört neben der Größe und der Formatierung als Kreis die Eigenschaft overflow:hidden. Diese verhindert, dass die Bilder über den Container hinausragen, selbst wenn sie größer sind als der Container:

.teaser{
margin-bottom40px;
border-radius50%;
width300px;
height300px;
overflowhidden;
}

Listing 14.6    Ecken abrunden mit border-radius

Dann wird das Bild formatiert und bekommt feste Maße (Höhe und Breite), damit klar ist, was animiert werden soll, und dazu die transition-Einstellungen.

#teaser-1 img {
height300px;
width300px;
-webkit-transitionall 1s ease;
-moz-transitionall 1s ease;
 -o-transitionall 1s ease;
 -ms-transitionall 1s ease;
 transitionall 1s ease;
}

Listing 14.7    Mit transition einen weichen Übergang erstellen

Und als hover-Effekt werden dann nur die Maße des Bildes per CSS verändert:

#teaser-1 img:hover {
width350px;
height350px;
}

Listing 14.8    Definition des hover-Zustands

Fertig ist der kleine Mouseover-Effekt. Im Ordner BeispielmaterialKapitel_14 befindet sich der komplette Quellcode samt einem weiteren Beispiel mit horizontaler Bildverschiebung.

 
Zum Seitenanfang

14.1.2    CSS3-Transform – Verzerren, Skalieren und Drehen Zur vorigen ÜberschriftZur nächsten Überschrift

Mit der CSS3-Eigenschaft transform lassen sich Elemente in der Lage und Form verändern. Zusammen mit transition können so Animationen und Effekte umgesetzt werden, die vorher nur mit Flash oder JavaScript möglich waren.

Ein kleiner interaktiver Guide durch unser Sonnensystem dank CSS3: codepen.io/juliangarnier/pen/idhuG

Abbildung 14.6    Ein kleiner interaktiver Guide durch unser Sonnensystem dank CSS3: codepen.io/juliangarnier/pen/idhuG

Wird ein HTML-Element per transform verändert, bleibt es trotzdem im HTML-Fluss. Es kann aber passieren (z. B. beim Skalieren), dass es sich mit anderen überlagert, ähnlich der relativen und absoluten Positionierung. Der verfügbare Raum und die umgebenden Elemente sollten also für ein transformiertes Element mit eingeplant werden. Wichtig ist noch die Unterscheidung in 2D- und 3D-Transforms.

2D-Transforms | Die 2D-Transforms werden von modernen Browsern unterstützt. 3D-Transforms unterstützt der Internet Explorer 10 nur teilweise, und ältere IE-Versionen tun das überhaupt nicht. Zur Unterstützung älterer Browserversionen sollten Sie die Vendor-Präfixe einsetzen:

-ms-transformrotate(30deg); /* IE < 10*/
-webkit-transformrotate(30deg); /* chrome und safari*/
-moz-transformrotate(30deg); /* firefox */
-o-transformrotate(30deg); /* opera */
transformrotate(30deg); /* explorer > 9 */

Listing 14.9    CSS3-Transform mit Präfixen

Download

Sie finden die verschiedenen Transform-Beispiele »CSS3-transforms.html« unter BeispielmaterialKapitel_14.

Auf der Webseite zum Buch finden Sie verschiedene transform-Beispiele.

Abbildung 14.7    Auf der Webseite zum Buch finden Sie verschiedene transform-Beispiele.

Nach der transform-Eigenschaft wird die Funktion mit den Werten in Klammern angegeben. Mehrere Transforms werden direkt hintereinander – durch ein Leerzeichen getrennt – angegeben:

transform:rotate(-15degscale(1.5);

Listing 14.10    Mehrere Transforms in einer CSS-Deklaration

Auch negative Werte sind hier möglich. Im oberen Beispiel wird das Bild dann entgegen dem Uhrzeigersinn gedreht. Folgende 2D-transform-Eigenschaften sind möglich:

2D-»transform«-Eigenschaft

Bedeutung

Beispiel

rotate (Drehen)

Dreht das Objekt. Werte von 0° bis 360°

transformrotate(30deg)

scale (Vergrößern)

Skaliert das Objekt. Mit einem Wert proportional, bei zwei Länge und Breite. 1 bedeutet 100 %. 2 vergrößert um 200, und 0.5 verkleinert um 50 %.

transformscale(1.5)

skew (Verzerren)

Verzerrt das Objekt mit Werten von 0 bis 180deg bzw. –180deg. Ein Wert gemeinsam für x- und y-Achse oder zwei getrennt

transformskew(15deg,
-15deg)

translate (Verschieben)

Verschiebt das Element um n Pixel nach rechts und unten, bei negativen Werten nach links und oben.

transformrotate(30deg)

Tabelle 14.2    Überblick über die HTML5-2D-transform-Elemente

Wow, CSS-Transitions und -Transforms im Einsatz bei bevisionare.com

Abbildung 14.8    Wow, CSS-Transitions und -Transforms im Einsatz bei bevisionare.com

Noch einmal Wow: Auch kok-au-vin.be setzt auf CSS-Transitions und -Transforms.

Abbildung 14.9    Noch einmal Wow: Auch kok-au-vin.be setzt auf CSS-Transitions und -Transforms.

3D-Transforms und Keyframe-Animationen | 3D mit CSS? Ja, das geht tatsächlich, und vermutlich werden einige ganz feuchte Hände dabei bekommen. Die Möglichkeiten sind aber natürlich keineswegs mit üblichen 3D-Programmen zu vergleichen, auch können keine 3D-Objekte aus anderen Programmen eingebunden werden. In Bezug auf einen Fluchtpunkt können die Elemente in einem dreidimensionalen Koordinatensystem ausgerichtet und verzerrt werden. Die Seite mediaevent.de/css/transform.html gibt Ihnen einen tieferen Einblick.

Download

Sie finden das Transform-Beispiel »CSS3-transforms.html« unter BeispielmaterialKapitel_14.

Für Buttons, Links und Navigationspunkte gut geeignet sind die Creative Link Effects (tympanus.net/Development/CreativeLinkEffects).

Abbildung 14.10    Für Buttons, Links und Navigationspunkte gut geeignet sind die Creative Link Effects (tympanus.net/Development/CreativeLinkEffects).

Hover.css bietet viele hover-Effekte als Vorlage (ianlunn.github.io/Hover).

Abbildung 14.11    Hover.css bietet viele hover-Effekte als Vorlage (ianlunn.github.io/Hover).

Und dann gibt es noch die Möglichkeit der Keyframe-Animation, wie man es von Flash oder Videoschnittprogrammen gewohnt ist. Während eine Transition-Animation genau zwei Keyframes hat (einen Ausgangs- und einen Endpunkt), lassen sich mit CSS-Animationen beliebig viele Schlüsselbilder einfügen. Die Animation läuft dann von Schlüsselbild zu Schlüsselbild, und es kann noch festgelegt werden, ob sie sich am Ende wiederholen soll, zurücklaufen soll oder einfach zu Ende ist.

Die beiden Blogbeiträge the-art-of-web.com/css/3d-transforms und webdesign-journal.de/css3-animationen-leitfaden erklären das Keyframe-Prinzip ausführlicher mit vielen praktischen Beispielen. Die Animation-Keyframe-Eigenschaft ist sehr mächtig. Von kleinen Animationen für Buttons über Bilder-Slideshows bis zu komplexen Trickfilmen ist damit vieles möglich.

Unterstützung von 3D-Transforms und Keyframe-Animations

Aufgrund der noch geringen Unterstützung in vielen üblichen Browsern sind die 3D-Transforms und Keyframe-Animations noch nicht so weit verbreitet. Aber es kann davon ausgegangen werden, dass sie in den nächsten Jahren an Bedeutung gewinnen und wir noch einige spannende Einsatzgebiete kennenlernen werden.

Das CSS3 Hover Effects Pack liefert jede Menge interessante hover-Effekte zum Lernen, Ausprobieren und Übernehmen (gudh.github.io/ihover/dist/index.html).

Abbildung 14.12    Das CSS3 Hover Effects Pack liefert jede Menge interessante hover-Effekte zum Lernen, Ausprobieren und Übernehmen (gudh.github.io/ihover/dist/index.html).

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Webdesign Webdesign
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: HTML5 und CSS3
HTML5 und CSS3


Zum Rheinwerk-Shop: Praxisbuch Usability und UX
Praxisbuch Usability und UX


Zum Rheinwerk-Shop: Responsive Webdesign
Responsive Webdesign


Zum Rheinwerk-Shop: Website-Konzeption und Relaunch
Website-Konzeption und Relaunch


Zum Rheinwerk-Shop: UX Writing und Microcopy
UX Writing und Microcopy


Zum Rheinwerk-Shop: WordPress 5
WordPress 5


Zum Rheinwerk-Shop: Stile & Looks
Stile & Looks


Zum Rheinwerk-Shop: Digitale Illustration
Digitale Illustration


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern