Quantcast
Channel: Animationen – kulturbanause®
Viewing all 29 articles
Browse latest View live

Flash zu HTML5 Converter von Adobe: Wallaby

$
0
0
adobe-wallaby

Flash verliert mit der zunehmenden Verbreitung von HTML5 immer mehr an Boden. Nicht zuletzt weil Apple Flash aus dem iOS verbannt hat. Ob das nun gut oder schlecht ist mag ich hier gar nicht bewerten aber offenbar hat Adobe die Zeichen der Zeit erkannt und stellt nun mit Wallaby ein Konvertierungs-Tool für Flash-Dokumente bereit.

In den Adobe Labs kann die Air-Anwendung Wallaby kostenlos heruntergeladen werden.

adobe-labs

Zu beachten ist jedoch dass Wallaby sich noch im Stadium des Release Candidate befindet - also nicht fehlerfrei ist. Adobe selbst schreibt dazu:

"Wallaby" is the codename for an experimental technology that converts the artwork and animation contained in Adobe® Flash® Professional (FLA) files into HTML. Wallaby is not a final product and is still in the testing and validation phase. We are not yet able to commit to a roadmap for this experimental technology.

Nichts desto trotz funktioniert die App erstaunlich gut und konvertiert Flash-Dokumente per Klick in HTML5. Ihr solltet jedoch bedenken, dass auch HTML5 nicht alle Möglichkeiten von Flash abdeckt. Je komplexer die Flash-Datei also ist, desto schwieriger wird es das Dokument zu konvertieren.

adobe-wallaby-flash-html5-converter

Ihr könnt Adobe Wallaby in den Adobe Labs herunterladen.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.


CSS3-Transitions intuitiv erstellen: Ceaser

$
0
0
ceaser-css-animation

Mit der CSS3-Eigenschaft transition habt Ihr die Möglichkeit animierte Objekte und Übergänge zu erstellen. Ein häufig verwendetes Beispiel ist der Hover-Effekt in einer Navigation.
Um mit Transitions arbeiten zu können muss einem Objekt zunächst mitgeteilt werden auf welche Eigenschaften sich die Animation auswirken soll. Doch auch die Art der Animation spielt eine große Rolle. So kann eine Animation linear ablaufen oder zum Anfang und Ende hin ein wenig abbremsen, was in der Regel zu einem natürlicheren Bewegungsablauf führt. Die Optionen sind hier sehr umfangreich.
Ein nützliches Tool um Geschwindigkeit und Beschleunigung einer Animation intuitiv festzulegen ist Ceaser.

In Ceaser habt Ihr die Möglichkeit aus bestehenden CSS3-Eigenschaften zu wählen oder alle Angaben selbst festzulegen. Neben der Dauer kann auch die Art der Animation festgelegt werden. Für sehr individuelle Bewegungsabläufe kann sogar mit der Mouse der Pfad detailliert angepasst werden.

Ceaser - CSS Animation

Sinnvoll ist es sicher auch sich die Standard-Einstellungen, die in CSS3 zur Verfügung stehen, anzuschauen und zu verstehen welche Eigenschaft für welche Art von Animation steht.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Happy Nikolaus! Mein Adventskalender-Türchen zum Thema “CSS3-Keyframe-Animationen” im Webstandard-Blog

$
0
0
css3-keyframe-demo

Im CSS3-Adventskalender des "Webstandard-Blog" ist heute ein Türchen mit einem Gastbeitrag von mir geöffnet worden. Ich erkläre wie ihr CSS3-Keyframe-Animationen im Layout einsetzen könnt und animiere exemplarisch eine Küstenlandschaft mit Leuchtturm, Möwen und Wolken.
Ich freue mich sehr mit diesem Tutorial am Adventskalender teilnehmen zu können, die Beiträge haben mich nämlich bereits im letzten Jahr überzeugt und sind sehr umfangreich und interessant. Ihr solltet also unbedingt auch einen Blick auf den Kalender von letztem Jahr werfen - die Beiträge sind nach wie vor aktuell.
In diesem Sinne: Ich wünsche euch eine gemütliche Weihnachtszeit :)

Dieses Beispiel erkläre ich im Webstandard-Blog. Wenn ihr wissen wollt wie es funktioniert, besucht bitte den Adventskalender.

CSS3-Keyframe-Animationen - Tag 6 im CSS3 Advenstkalender 2011


Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Adobe Edge Preview 6

$
0
0
adobe-edge-icon-logo

Im heutigen Gastbeitrag erklärt Fabian Kaiser welche Änderungen Adobes Web-Tool "Edge" in der sechsten Preview-Version bereit hält und in wie fern Edge für Webdesigner hilfreich ist.

Das HTML5-Animationstool von Adobe Systems wurde jetzt in seiner sechsten Vorschau-Version veröffentlicht.
Edge wurde als Alternative zu Flash entwickelt, das wegen seiner mangelnden Unterstützung von mobilen Anwendungen und seiner Sicherheitsprobleme oft kritisiert wurde. Das Werkzeug bietet für das Webdesign eine grafische Oberfläche zur Gestaltung von Objekten, die mittels HTML5, CSS3 und JavaScript animiert werden. Es wird also ganz auf offene Standards gesetzt. Die fertigen Animationen werden als JSON-Datei inklusive CSS-Code gespeichert, und praktisch alle aktuellen mobilen (iOS, Android) und Desktop-Browser-Versionen (Firefox, Internet Explorer 9, Chrome, Safari) können bei aktiviertem JavaScript die so erstellten Animationen problemlos darstellen, wobei diese direkt - ohne Browser-Plugin - in der Webseite wiedergegeben werden.

Vorhandene Webseiten mit Edge ausbauen

Edge unterstützt den Webdesigner nicht nur beim Erstellen neuer Webseiten, sondern auch bei der Erweiterung bereits vorhandener Webseiten. Hier besteht der große Vorteil darin, dass das bestehende Design nicht noch einmal neu aufgebaut werden muss. Der Webdesigner kann so sein Projekt rascher fertigstellen.

Adobe Edge Benutzeroberfläche
Quelle: adobe.com

Wer mit Edge arbeitet verwendet eine Bühne, um die Animations-Abläufe über den Timeline-Editor (Zeitleiste) oder die WebKit-Schnittstelle zu modifizieren. Außerdem ist das Adobe Typekit, und damit eine große Auswahl an WebFonts, eingebunden. Viele vorgefertigte JavaScript-Code-Snippets stehen in einer Bibliothek zur Verwendung bereit.

Edge-Tutorials sind nun in verschiedenen Sprachen erhältlich

Gegenüber der Vorgänger-Version wurde die Einführung für den Webentwickler verbessert. Die Tutorials sind auch in Deutsch, Französisch, Italienisch, Spanisch und Japanisch verfügbar. Eine wesentliche Verbesserung hat der Code-Editor erfahren, der ausgebaut wurde und mehr Änderungen an den Animationen erlaubt bzw. die möglichen Aktionscodes übersichtlicher anbietet. Mit Symbolen kann jetzt flexibler umgegangen werden. Auch die Benutzerführung wurde verbessert, allerdings treten bereits aus der früheren Version bekannte Fehler zum Teil noch immer auf. Neu ist außerdem, dass der Export jetzt auch im DPS- und iBook-Format möglich ist bzw. die Kompatibilität verbessert wurde.

Adobe Edge Benutzeroberfläche
Quelle: adobe.com

Die Edge Preview 6 kann unter edge.adobe.com für Windows oder Mac kostenlos heruntergeladen werden. Zu beachten ist, dass vor der Umstellung auf die neue Edge-Version alle vorherigen Versionen deinstalliert werden sollten, da sonst erhebliche Komplikationen auftreten könnten.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Frame-Animation mit Photoshop – Einen Ladebalken animieren

$
0
0
frame-animation-mit-photoshop-einen-ladebalken-animieren

Mit Photoshop lassen sich verschiedene Arten von Animationen herstellen. Eine davon ist die sog. Frame-Animation, in der verschiedene Einzelbilder nacheinander abgespielt werden. In diesem Video-Tutorial zeige ich euch am Beispiel eines Ladebalkens, wie ihr das Grundobjekt gestaltet und anschließend mit Hilfe der Photoshop-Zeitleiste animiert. Das Ergebnis speichern wir als GIF-Animation ab.

Dieses Video ist ein Auszug aus dem Training »Webdesign mit Photoshop« von Galileo Press und wurde auf Photoshop Profis veröffentlicht.

In dieser neuen Folge der »Photoshop-Profis« zeigt Ihnen Jonas Hellwig, wie Sie einen Ladevorgang ansprechend visualisieren können. Bei der Animation des Fortschrittbalkens hilft Ihnen die neue Zeitleiste in Photoshop CS6. Den Ladebalken selber können Sie über Ebenenstile plastisch gestalten und zum Leuchten bringen. Naürlich zeigt Ihnen der Profi auch, wie Sie die Animation als GIF speichern.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

CSS Flip Animation – Objekte umdrehen

$
0
0
flip

Bei sog. CSS-Flips (CSS3-3D-Animationen) wird ein Objekt umgedreht, so dass die Rückseite sichtbar ist. Um den Effekt zu erreichen, setzen wir CSS3-3D-Transformationen und CSS3-Transitions ein. Spannend an diesem Beispiel sind auch die perspektivischen Möglichkeiten von CSS.

Basis-Aufbau und Funktionsweise

Damit in CSS3 perspektivische 3D-Effekte möglich sind, müssen wir zunächst die globale Perspektive der Szene in einem Container-Element festlegen. In diesem Beispiel verwenden wir dazu den div mit der Klasse .kulturbanause-logo.
Innerhalb des »Perspektiven-Containers« verwenden wir noch einen Container für die Animation. Dieser trägt die Klasse .turnaround und steuert u.a. die Dauer der Animation.
Zuletzt fügen wir noch zwei Elemente für die Vorderseite (.front) und die Rückseite (.back) des Logos ein. Der HTML-Code sieht also wie folgt aus:

<div class="kulturbanause-logo">
  <div class="turnaround">
    <div class="front"></div>
    <div class="back"></div>
  </div>
</div>

Der Trick ist nun folgender: Mit Hilfe von transform: rotateY(180deg); drehen wir die Rückseite (.back) des Logos um. Normalerweise handelt es sich bei der Rückseite eines Elements um die gespiegelte Vorderseite. Mit backface-visibility: hidden; ändern wir diese Darstellung und sorgen dafür, dass Elemente unsichtbar werden, sobald man ihre Rückseite sehen würde. Wir haben nun also eine ganz normale Vorderseite des Logos (.front) und eine Rückseite (.back) die allerdings umgedreht wurde und daher unsichtbar ist.

Der Rest ist denkbar einfach. Wir drehen per Mouse-Over nun gemeinsam Vorder- und Rückseite um 180°. Dazu brauchen wir den Container .turnaround. Nun passiert folgendes: Die Vorderseite (.front) wird nach hinten gedreht und dadurch unsichtbar. Gleichzeitig passiert genau das Gegenteil mit der Rückseite (.back), denn die hatten wir genau aus diesem Grund bereits vorher umgedreht. Durch die Rotation der gesamten Szene befindet sich beim Mouse-Over die Vorderseite von .back vorne und ist daher sichtbar.

CSS-Code

Schaut euch am besten den Code an, ich habe die schwierigen Passagen kommentiert. Da CSS3-3D-Transformationen Vendor-Präfixe benötigen, habe ich das Plugin Prefix-Free verwendet um das Beispiel einigermaßen übersichtlich zu halten. Den Browser-Support für CSS-Animationen entnehmt ihr bitte dieser Website.

.kulturbanause-logo {
   height: 500px;
   width: 500px;
   perspective: 1500; /* Hier wird die Perspektive der gesamten Szene festgelegt. Der Wert hat Auswirkung auf die Verzerrung */
   float: left;
   margin: 0 1em;
}

.kulturbanause-logo:hover .turnaround { 
   transform: rotateY(180deg); /* Beim Mouse-Over wird die Szene umgedreht */ 
}

.kulturbanause-logo .front { 
   background: url(flip-front.jpg) 0 0 no-repeat; 
}

.kulturbanause-logo .back { 
   background: url(flip-back.jpg) 0 0 no-repeat; 
}

.turnaround {
   transition: .5s /* Die Drehung soll 0,5 Sekunden dauern */;
   transform-style: preserve-3d; /* Kind-Elemente  (.front + .back) sollen ihre 3D-Eigenschaften behalten*/
   position: relative;
   height: 100%;
}

.front,
.back {
   backface-visibility: hidden /* Die Rückseite von Elementen soll unsichtbar sein */;
   position: absolute;
   width: 100%;
   height: 100%;
}

.front { z-index: 2; }

.back {
   transform: rotateY(180deg) /* Die Rückseite des Logos wird umgedreht, um dann bei der Drehung der gesamten Szene vorne zu sein :) */;
   z-index: 1;
}

Beispieldateien herunterladen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Schwebende Objekte mit CSS3 Keyframe-Animationen

$
0
0
schwebendes-objekt-css-keyframe-animation

Mit CSS3-Animationen lassen sich viele Effekte unkompliziert und performant umsetzen. In diesem Beitrag möchte ich den CSS-Code für einen Schwebe-Effekt archivieren. Mit Hilfe einer Keyframe-Animation wird das Objekt dazu lediglich auf der Y-Achse auf- und ab bewegt.

CSS-Klassen für Schwebezustand

Ich habe die Animation in eine eigene CSS-Klasse (.hovering) verpackt um sie anschließend auf verschiedene Objekte anwenden zu können.
Mit animation-name legen wir einen Namen für unsere Animation fest. animation-duration: 3s bestimmt wie viel Zeit der Animation für einen Durchlauf zur Verfügung steht (3 Sekunden) und animation-iteration-count: infinite lässt die Animation in Endlosschleife laufen. Es fehlt noch die Animationskurve, also die Beschleunigung der Bewegung. Mit animation-timing-function: ease-in-out wird die Animation am Anfang und am Ende leicht abgebremst. Das sorgt für einen natürlicheren Effekt. Hilfsmittel zur Konstruktion eigener Animationskurven findet ihr hier.

.hovering {
    animation-name: hovering;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

Keyframe-Animation

Die Animation haben wir mit einem Namen bereits angesprochen und ihr mitgeteilt wie lange und auf welche Art sie sich zu bewegen hat. Es fehlt allerdings noch die Bewegung selbst.
Mit den 2D-Tranformations-Effekten von CSS3 bewegen wir das Objekt auf der Y-Achse auf und ab. Bei 0% der Animation befindet es sich ganz unten, nach 50% der Zeit wurde es um 25px nach oben verschoben, am Ende der Animation (100% Zeit) befindet es sich wieder an der Startposition. Das war schon alles.

@keyframes hovering {
    from {transform:translate(0, 0px);}
    50% {transform:translate(0, -25px);}
    to {transform: translate(0, -0px);}
}

Vendor-Präfixe notwendig

Der oben gezeigte Code verwendet aus Gründen der besseren Übersicht keine Vendor-Präfixe. Zum Veröffentlichungs-Zeitpunkt dieses Beitrags müssen diese allerdings noch geschrieben werden. Hier könnt ihr den stets aktuellen Browser-Support nachschlagen.

Das funktionierende Beispiel inkl. Vendor-Präfixe könnt ihr euch hier anschauen.

Vollständiger CSS-Code inkl. Vendor-Präfixe

Der komplette CSS-Code des Beispiels sieht so aus:

.hovering {
    -webkit-animation-name: hovering;
    -webkit-animation-duration: 3s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: ease-in-out;
    -moz-animation-name: hovering;
    -moz-animation-duration: 3s;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: ease-in-out;
    animation-name: hovering;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@-webkit-keyframes hovering {
    from {-webkit-transform:translate(0, 0px);}
    50% {-webkit-transform:translate(0, -25px);}
    to {-webkit-transform: translate(0, -0px);}
}

@-moz-keyframes hovering {
    from {-moz-transform:translate(0, 0px);}
    50% {-moz-transform:translate(0, -25px);}
    to {-moz-transform: translate(0, -0px);}
}

@keyframes hovering {
    from {transform:translate(0, 0px);}
    50% {transform:translate(0, -25px);}
    to {transform: translate(0, -0px);}
}

Beispieldateien herunterladen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Flash zu HTML5 Converter von Adobe: Wallaby

$
0
0
adobe-wallaby

Flash verliert mit der zunehmenden Verbreitung von HTML5 immer mehr an Boden. Nicht zuletzt weil Apple Flash aus dem iOS verbannt hat. Ob das nun gut oder schlecht ist mag ich hier gar nicht bewerten aber offenbar hat Adobe die Zeichen der Zeit erkannt und stellt nun mit Wallaby ein Konvertierungs-Tool für Flash-Dokumente bereit.

In den Adobe Labs kann die Air-Anwendung Wallaby kostenlos heruntergeladen werden.

adobe-labs

Zu beachten ist jedoch dass Wallaby sich noch im Stadium des Release Candidate befindet - also nicht fehlerfrei ist. Adobe selbst schreibt dazu:

"Wallaby" is the codename for an experimental technology that converts the artwork and animation contained in Adobe® Flash® Professional (FLA) files into HTML. Wallaby is not a final product and is still in the testing and validation phase. We are not yet able to commit to a roadmap for this experimental technology.

Nichts desto trotz funktioniert die App erstaunlich gut und konvertiert Flash-Dokumente per Klick in HTML5. Ihr solltet jedoch bedenken, dass auch HTML5 nicht alle Möglichkeiten von Flash abdeckt. Je komplexer die Flash-Datei also ist, desto schwieriger wird es das Dokument zu konvertieren.

adobe-wallaby-flash-html5-converter

Ihr könnt Adobe Wallaby in den Adobe Labs herunterladen.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.


CSS3-Transitions intuitiv erstellen: Ceaser

$
0
0
ceaser-css-animation

Mit der CSS3-Eigenschaft transition habt Ihr die Möglichkeit animierte Objekte und Übergänge zu erstellen. Ein häufig verwendetes Beispiel ist der Hover-Effekt in einer Navigation.
Um mit Transitions arbeiten zu können muss einem Objekt zunächst mitgeteilt werden auf welche Eigenschaften sich die Animation auswirken soll. Doch auch die Art der Animation spielt eine große Rolle. So kann eine Animation linear ablaufen oder zum Anfang und Ende hin ein wenig abbremsen, was in der Regel zu einem natürlicheren Bewegungsablauf führt. Die Optionen sind hier sehr umfangreich.
Ein nützliches Tool um Geschwindigkeit und Beschleunigung einer Animation intuitiv festzulegen ist Ceaser.

In Ceaser habt Ihr die Möglichkeit aus bestehenden CSS3-Eigenschaften zu wählen oder alle Angaben selbst festzulegen. Neben der Dauer kann auch die Art der Animation festgelegt werden. Für sehr individuelle Bewegungsabläufe kann sogar mit der Mouse der Pfad detailliert angepasst werden.

Ceaser - CSS Animation

Sinnvoll ist es sicher auch sich die Standard-Einstellungen, die in CSS3 zur Verfügung stehen, anzuschauen und zu verstehen welche Eigenschaft für welche Art von Animation steht.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Happy Nikolaus! Mein Adventskalender-Türchen zum Thema „CSS3-Keyframe-Animationen“ im Webstandard-Blog

$
0
0
css3-keyframe-demo

Im CSS3-Adventskalender des "Webstandard-Blog" ist heute ein Türchen mit einem Gastbeitrag von mir geöffnet worden. Ich erkläre wie ihr CSS3-Keyframe-Animationen im Layout einsetzen könnt und animiere exemplarisch eine Küstenlandschaft mit Leuchtturm, Möwen und Wolken.
Ich freue mich sehr mit diesem Tutorial am Adventskalender teilnehmen zu können, die Beiträge haben mich nämlich bereits im letzten Jahr überzeugt und sind sehr umfangreich und interessant. Ihr solltet also unbedingt auch einen Blick auf den Kalender von letztem Jahr werfen - die Beiträge sind nach wie vor aktuell.
In diesem Sinne: Ich wünsche euch eine gemütliche Weihnachtszeit :)

Dieses Beispiel erkläre ich im Webstandard-Blog. Wenn ihr wissen wollt wie es funktioniert, besucht bitte den Adventskalender.

CSS3-Keyframe-Animationen - Tag 6 im CSS3 Advenstkalender 2011


Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Adobe Edge Preview 6

$
0
0
adobe-edge-icon-logo

Im heutigen Gastbeitrag erklärt Fabian Kaiser welche Änderungen Adobes Web-Tool "Edge" in der sechsten Preview-Version bereit hält und in wie fern Edge für Webdesigner hilfreich ist.

Das HTML5-Animationstool von Adobe Systems wurde jetzt in seiner sechsten Vorschau-Version veröffentlicht.
Edge wurde als Alternative zu Flash entwickelt, das wegen seiner mangelnden Unterstützung von mobilen Anwendungen und seiner Sicherheitsprobleme oft kritisiert wurde. Das Werkzeug bietet für das Webdesign eine grafische Oberfläche zur Gestaltung von Objekten, die mittels HTML5, CSS3 und JavaScript animiert werden. Es wird also ganz auf offene Standards gesetzt. Die fertigen Animationen werden als JSON-Datei inklusive CSS-Code gespeichert, und praktisch alle aktuellen mobilen (iOS, Android) und Desktop-Browser-Versionen (Firefox, Internet Explorer 9, Chrome, Safari) können bei aktiviertem JavaScript die so erstellten Animationen problemlos darstellen, wobei diese direkt - ohne Browser-Plugin - in der Webseite wiedergegeben werden.

Vorhandene Webseiten mit Edge ausbauen

Edge unterstützt den Webdesigner nicht nur beim Erstellen neuer Webseiten, sondern auch bei der Erweiterung bereits vorhandener Webseiten. Hier besteht der große Vorteil darin, dass das bestehende Design nicht noch einmal neu aufgebaut werden muss. Der Webdesigner kann so sein Projekt rascher fertigstellen.

Adobe Edge Benutzeroberfläche
Quelle: adobe.com

Wer mit Edge arbeitet verwendet eine Bühne, um die Animations-Abläufe über den Timeline-Editor (Zeitleiste) oder die WebKit-Schnittstelle zu modifizieren. Außerdem ist das Adobe Typekit, und damit eine große Auswahl an WebFonts, eingebunden. Viele vorgefertigte JavaScript-Code-Snippets stehen in einer Bibliothek zur Verwendung bereit.

Edge-Tutorials sind nun in verschiedenen Sprachen erhältlich

Gegenüber der Vorgänger-Version wurde die Einführung für den Webentwickler verbessert. Die Tutorials sind auch in Deutsch, Französisch, Italienisch, Spanisch und Japanisch verfügbar. Eine wesentliche Verbesserung hat der Code-Editor erfahren, der ausgebaut wurde und mehr Änderungen an den Animationen erlaubt bzw. die möglichen Aktionscodes übersichtlicher anbietet. Mit Symbolen kann jetzt flexibler umgegangen werden. Auch die Benutzerführung wurde verbessert, allerdings treten bereits aus der früheren Version bekannte Fehler zum Teil noch immer auf. Neu ist außerdem, dass der Export jetzt auch im DPS- und iBook-Format möglich ist bzw. die Kompatibilität verbessert wurde.

Adobe Edge Benutzeroberfläche
Quelle: adobe.com

Die Edge Preview 6 kann unter edge.adobe.com für Windows oder Mac kostenlos heruntergeladen werden. Zu beachten ist, dass vor der Umstellung auf die neue Edge-Version alle vorherigen Versionen deinstalliert werden sollten, da sonst erhebliche Komplikationen auftreten könnten.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Frame-Animation mit Photoshop – Einen Ladebalken animieren

$
0
0
frame-animation-mit-photoshop-einen-ladebalken-animieren

Mit Photoshop lassen sich verschiedene Arten von Animationen herstellen. Eine davon ist die sog. Frame-Animation, in der verschiedene Einzelbilder nacheinander abgespielt werden. In diesem Video-Tutorial zeige ich euch am Beispiel eines Ladebalkens, wie ihr das Grundobjekt gestaltet und anschließend mit Hilfe der Photoshop-Zeitleiste animiert. Das Ergebnis speichern wir als GIF-Animation ab.

Dieses Video ist ein Auszug aus dem Training »Webdesign mit Photoshop« von Galileo Press und wurde auf Photoshop Profis veröffentlicht.

In dieser neuen Folge der »Photoshop-Profis« zeigt Ihnen Jonas Hellwig, wie Sie einen Ladevorgang ansprechend visualisieren können. Bei der Animation des Fortschrittbalkens hilft Ihnen die neue Zeitleiste in Photoshop CS6. Den Ladebalken selber können Sie über Ebenenstile plastisch gestalten und zum Leuchten bringen. Naürlich zeigt Ihnen der Profi auch, wie Sie die Animation als GIF speichern.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

CSS Flip Animation – Objekte umdrehen

$
0
0
flip

Bei sog. CSS-Flips (CSS3-3D-Animationen) wird ein Objekt umgedreht, so dass die Rückseite sichtbar ist. Um den Effekt zu erreichen, setzen wir CSS3-3D-Transformationen und CSS3-Transitions ein. Spannend an diesem Beispiel sind auch die perspektivischen Möglichkeiten von CSS.

Basis-Aufbau und Funktionsweise

Damit in CSS3 perspektivische 3D-Effekte möglich sind, müssen wir zunächst die globale Perspektive der Szene in einem Container-Element festlegen. In diesem Beispiel verwenden wir dazu den div mit der Klasse .kulturbanause-logo.
Innerhalb des »Perspektiven-Containers« verwenden wir noch einen Container für die Animation. Dieser trägt die Klasse .turnaround und steuert u.a. die Dauer der Animation.
Zuletzt fügen wir noch zwei Elemente für die Vorderseite (.front) und die Rückseite (.back) des Logos ein. Der HTML-Code sieht also wie folgt aus:


<div class="kulturbanause-logo">
  <div class="turnaround">
    <div class="front"></div>
    <div class="back"></div>
  </div>
</div>

Der Trick ist nun folgender: Mit Hilfe von transform: rotateY(180deg); drehen wir die Rückseite (.back) des Logos um. Normalerweise handelt es sich bei der Rückseite eines Elements um die gespiegelte Vorderseite. Mit backface-visibility: hidden; ändern wir diese Darstellung und sorgen dafür, dass Elemente unsichtbar werden, sobald man ihre Rückseite sehen würde. Wir haben nun also eine ganz normale Vorderseite des Logos (.front) und eine Rückseite (.back) die allerdings umgedreht wurde und daher unsichtbar ist.

Der Rest ist denkbar einfach. Wir drehen per Mouse-Over nun gemeinsam Vorder- und Rückseite um 180°. Dazu brauchen wir den Container .turnaround. Nun passiert folgendes: Die Vorderseite (.front) wird nach hinten gedreht und dadurch unsichtbar. Gleichzeitig passiert genau das Gegenteil mit der Rückseite (.back), denn die hatten wir genau aus diesem Grund bereits vorher umgedreht. Durch die Rotation der gesamten Szene befindet sich beim Mouse-Over die Vorderseite von .back vorne und ist daher sichtbar.

CSS-Code

Schaut euch am besten den Code an, ich habe die schwierigen Passagen kommentiert. Da CSS3-3D-Transformationen Vendor-Präfixe benötigen, habe ich das Plugin Prefix-Free verwendet um das Beispiel einigermaßen übersichtlich zu halten. Den Browser-Support für CSS-Animationen entnehmt ihr bitte dieser Website.


.kulturbanause-logo {
   height: 500px;
   width: 500px;
   perspective: 1500; /* Hier wird die Perspektive der gesamten Szene festgelegt. Der Wert hat Auswirkung auf die Verzerrung */
   float: left;
   margin: 0 1em;
}

.kulturbanause-logo:hover .turnaround { 
   transform: rotateY(180deg); /* Beim Mouse-Over wird die Szene umgedreht */ 
}

.kulturbanause-logo .front { 
   background: url(flip-front.jpg) 0 0 no-repeat; 
}

.kulturbanause-logo .back { 
   background: url(flip-back.jpg) 0 0 no-repeat; 
}

.turnaround {
   transition: .5s /* Die Drehung soll 0,5 Sekunden dauern */;
   transform-style: preserve-3d; /* Kind-Elemente  (.front + .back) sollen ihre 3D-Eigenschaften behalten*/
   position: relative;
   height: 100%;
}

.front,
.back {
   backface-visibility: hidden /* Die Rückseite von Elementen soll unsichtbar sein */;
   position: absolute;
   width: 100%;
   height: 100%;
}

.front { z-index: 2; }

.back {
   transform: rotateY(180deg) /* Die Rückseite des Logos wird umgedreht, um dann bei der Drehung der gesamten Szene vorne zu sein :) */;
   z-index: 1;
}

Beispieldateien herunterladen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Schwebende Objekte mit CSS3 Keyframe-Animationen

$
0
0
schwebendes-objekt-css-keyframe-animation

Mit CSS-Animationen lassen sich viele Effekte unkompliziert und performant umsetzen. In diesem Beitrag möchte ich den CSS-Code für einen Schwebe-Effekt archivieren. Mit Hilfe einer Keyframe-Animation wird das Objekt dazu lediglich auf der Y-Achse auf- und ab bewegt.

CSS-Klassen für Schwebezustand

Ich habe die Animation in eine eigene CSS-Klasse (.hovering) verpackt um sie anschließend auf verschiedene Objekte anwenden zu können.
Mit animation-name legen wir einen Namen für unsere Animation fest. animation-duration: 3s bestimmt wie viel Zeit der Animation für einen Durchlauf zur Verfügung steht (3 Sekunden) und animation-iteration-count: infinite lässt die Animation in Endlosschleife laufen. Es fehlt noch die Animationskurve, also die Beschleunigung der Bewegung. Mit animation-timing-function: ease-in-out wird die Animation am Anfang und am Ende leicht abgebremst. Das sorgt für einen natürlicheren Effekt. Hilfsmittel zur Konstruktion eigener Animationskurven findet ihr hier.


.hovering {
    animation-name: hovering;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

Keyframe-Animation

Die Animation haben wir mit einem Namen bereits angesprochen und ihr mitgeteilt wie lange und auf welche Art sie sich zu bewegen hat. Es fehlt allerdings noch die Bewegung selbst.
Mit den 2D-Tranformations-Effekten von CSS3 bewegen wir das Objekt auf der Y-Achse auf und ab. Bei 0% der Animation befindet es sich ganz unten, nach 50% der Zeit wurde es um 25px nach oben verschoben, am Ende der Animation (100% Zeit) befindet es sich wieder an der Startposition. Das war schon alles.


@keyframes hovering {
    from {transform:translate(0, 0px);}
    50% {transform:translate(0, -25px);}
    to {transform: translate(0, -0px);}
}

Vendor-Präfixe notwendig

Der oben gezeigte Code verwendet aus Gründen der besseren Übersicht keine Vendor-Präfixe. Zum Veröffentlichungs-Zeitpunkt dieses Beitrags müssen diese allerdings noch geschrieben werden. Hier könnt ihr den stets aktuellen Browser-Support nachschlagen.

Das funktionierende Beispiel inkl. Vendor-Präfixe könnt ihr euch hier anschauen.

Vollständiger CSS-Code inkl. Vendor-Präfixe

Der komplette CSS-Code des Beispiels sieht so aus:


.hovering {
    -webkit-animation-name: hovering;
    -webkit-animation-duration: 3s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: ease-in-out;
    -moz-animation-name: hovering;
    -moz-animation-duration: 3s;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: ease-in-out;
    animation-name: hovering;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@-webkit-keyframes hovering {
    from {-webkit-transform:translate(0, 0px);}
    50% {-webkit-transform:translate(0, -25px);}
    to {-webkit-transform: translate(0, -0px);}
}

@-moz-keyframes hovering {
    from {-moz-transform:translate(0, 0px);}
    50% {-moz-transform:translate(0, -25px);}
    to {-moz-transform: translate(0, -0px);}
}

@keyframes hovering {
    from {transform:translate(0, 0px);}
    50% {transform:translate(0, -25px);}
    to {transform: translate(0, -0px);}
}

Beispieldateien herunterladen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Interaktionen und Mouse-Over-Effekte mit CSS3-Transitions

$
0
0
css-transitions

Mit der CSS-Eigenschaft transition könnt ihr anschauliche Interaktionen und Mouse-Over-Effekte erzeugen, ohne dabei Javascript oder Flash verwenden zu müssen. Präziser ausgedrückt kann der Ausgangswert einer CSS-Eigenschaft fließend in einen neuen Wert übergehen (»Transition« zu Deutsch »Übergang«). In diesem Beitrag lernt ihr die in diesem Zusammenhang relevanten CSS-Eigenschaften kennen.

Die verschiedenen Eigenschaften von CSS3-Transitions

Die vier folgenden Longhand Properties stellt uns CSS zur Verfügung:

transition-property
legt fest, welche Eigenschaft geändert wird
transition-duration
regelt die Dauer der Animation
transition-timing-function
definiert den Geschwindigkeitsverlauf. Bei ease-in-out erfolgt die Animation zu Beginn beispielsweise langsam, beschleunigt dann und bremst gegen Ende noch einmal ab. Es existieren verschiedene Schlüsselbegriffe. 
transition-delay
ermöglicht eine zeitliche Verzögerung.

Eine Animation mit CSS3-Transitions erzeugen

Im folgenden Beispiel erstellen wir eine einfache Animation, und verwenden dazu die Pseudoklasse :hover als Auslöser für den Übergang.

transition-beispiel

Einfaches Beispiel einer Transition - Ein Div ändert seine Farbe beim Mouseover

.kreis {
  background-color: blue;
  transition-property: background-color;
  transition-duration: 2s;
  transition-timing-function: ease-in-out;
  transition-delay: 1s;
  width: 100px;
  height: 100px;
  border-radius: 100%;
}
.kreis:hover {
  background-color: orange;
}

Die Kurzschreibweise für die oben gezeigte CSS-Transition schreibt sich wie folgt:

transition: background-color 2s ease-in-out 1s;

Dabei spielt die Reihenfolge der Werte eine untergeordnete Rolle, allerdings wird die erste Zahl als transition-delay interpretiert. Natürlich lassen sich so auch die Größe oder andere Eigenschaften eines Elements umwandeln und allerhand Effekte & Animationen erzeugen. Eine Liste aller animierbaren Eigenschaften findet ihr hier.

Die transition-timing-function genauer betrachtet

Für die transition-timing-function stehen fünf vordefinierte Werte zur Verfügung, deren Geschwindigkeitsverlauf hier kurz beschrieben wird:

ease:
kurz langsam - schnell - lange langsam
linear:
durchgehend gleich
ease-in:
langsamer Start
ease-out:
langsames Ende
ease-in-out:
langsam - schnell - langsam

Wenn euch die verfügbaren Standardwerte nicht ausreichen sollten, könnt ihr mit diesem Tool einen eigenen Verlauf der Animationsgeschwindigkeit festlegen. Die Schreibweise für die transition-timing-function wäre dann:

.transition-timing-function: cubic-bezier(0,1,1,0)

Stufenweise Übergänge sind auch möglich

Es ist auch möglich, den Übergang nicht fließend sondern stufenweise ablaufen zu lassen.

Beispiel anzeigen

steps( , start):

steps( , start) legt fest, dass der Übergang in 4 gleichmäßigen Schritten erfolgt und der Effekt zu Beginn (»start«) jedes Schrittes eintritt.

 transition-timing-function: steps (4, start)

steps(, end):

Bei steps( , end) tritt der Effekt entsprechend am Ende jedes Schrittes ein.
Die Schreibweise wäre entsprechend:

 transition-timing-function: steps (4, end)

Browser-Support

CSS3-Transitions werden vom Internet Explorer leider erst ab Version 10 unterstützt, auch für den Opera Mini gibt es keinen Support. In allen anderen Browsern funktionieren CSS3-Transitions. Damit auch ältere Versionen der Browser das Feature korrekt umsetzen, solltet ihr derzeit noch die entsprechenden Vendor-Prefixes verwenden. Den detaillierten Browser-Support entnehmt ihr bitte der Website caniuse.com.

-webkit-transition: background-color 2ms ease-out 1s;
-moz-transition: background-color 2ms ease-out 1s;
-o-transition: background-color 2ms ease-out 1s;
transition: background-color 2ms ease-out 1s;

 

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.


CSS Keyframe-Animationen

$
0
0
css-keyframes

CSS-Animationen werden mittlerweile von allen modernen Browsern unterstützt und ersetzen daher in vielen Bereichen Effekte, die einst nur über JavaScript realisiert werden konnten. Neben den sog. CSS-Transitions sind vor allem die CSS-Keyframe-Animationen interessant. Mit Keyframe-Animationen können komplexe Animationsabläufe über sog. Schlüsselbilder (keyframes) erzeugt werden. Im Gegensatz zu Transitions, die eine Interaktion des Users voraussetzen, können Keyframe-Animationen auch selbstständig ablaufen.

Die Syntax

Eine Keyframe-Animation wird in zwei Teilen aufgebaut. Mit der @keyframes-Regel wird bestimmt, wie die Animation heißen soll, welche Schlüsselbilder es in der Animation gibt und welche CSS-Eigenschaften animiert werden sollen. Die simpelste Keyframe-Animation besteht aus zwei Schlüsselbildern, für den Beginn und das Ende der Animation.

@keyframes meine-animation {
  from {
    /* Eigenschaften zum Beginn der Animation */ 
  }

  to {
    /* Eigenschaften zum Ende der Animation */ 
  }
}

.mein-selektor {
  animation-name: meine-animation;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  /* weitere animation-Eigenschaften */
}

Der zweite Teil der Animation wird im Selektor des Objekts, das animiert werden soll notiert. Dazu existieren die animation-Eigenschaften in CSS:

animation-name (Pflichtangabe)

Über die Eigenschaft animation-name definiert man welche Keyframes verwendet werden sollen. Es muss der in der @keyframes-Regel verwendete Name angegeben werden.

animation-duration (Pflichtangabe)

Mit animation-duration wird in Sekunden festgelegt wie lange die Animation dauern soll.

animation-iteration-count (Pflichtangabe)

Mit der Eigenschaft animation-iteration-count wird bestimmt wie oft die Animation ablaufen soll. Mögliche Werte sind das Schlüsselwort infinite für unendliche viele Wiederholungen. Ansonsten kann ein beliebiger Zahlwert angegeben werden.

Beispiel anschauen

animation-timing-function

Mit animation-timing-function wird bestimmt, wie die Animationskurve aussehen soll. Hier existieren die Schlüsselbegriffe ease, steps(<integer>, start), steps(<integer>, end), linear, ease-out, ease-in-out, ease-in für bereits vordefinierte Animationskurven. Wenn eine eigene Kurve verwendet werden soll, kann sie über ein Tool erzeugt und schließend in form von cubic-bezier(<number>, <number>, <number>, <number>) eingefügt werden. Der Standard-Wert ist ease.

Beispiel anschauen

animation-delay

Mit animation-delay wird eine Verzögerung der Animation in Sekunden festgelegt.

Beispiel anschauen

animation-direction

Mit animation-direction kann die Richtung der Animation festgelegt werden. Mögliche Werte sind normalreverse (die Animation wird rückwärts abgespielt), alternate-reverse (die Animation wird bei jedem ungeraden Durchlauf rückwärts abgespielt) und alternate (die Animation wird bei jedem geraden Durchlauf rückwärts abgespielt).

Beispiel anschauen

animation-fill-mode

Mit animation-fill-mode wird festgelegt, wie das Objekt sich verhalten soll, wenn die Animation gerade nicht läuft. Beispielsweise weil über animation-delay eine Verzögerung eingestellt wurde oder die Animation bereits abgelaufen ist. Es sind folgende Werte erlaubt: noneforwards (Zustand zum Ende der Animation), backwards (Zustand zum Beginn der Animation), both (kombinierte Werte aus dem Beginn und dem Ende der Navigation)

animation-play-state

Mit animation-play-state wird festgelegt ob die Animation abgespielt wird oder pausiert. Mit dem Wert running wird die Animation abgespielt, mit paused pausiert. Dies macht in Kombination mit Mouse-Over-Effekten oder JavaScript Sinn.

Beispiel anschauen

Kurzschreibweise

Die Kurzschreibweise für die oben genannten animation-Eigenschaften lautet animation. Die Werte müssen in folgender Reihenfolge angegeben werden.

.selektor {
  animation: [animation-name] [animation-duration] [animation-timing-function] [animation-delay] [animation-iteration-count] [animation-direction] [animation-fill-mode] [animation-play-state]
}

Komplexe Animationen

Innerhalb der @keyframes-Regel können beliebig viele Schlüsselbilder angegeben werden. Wenn es mehr als zwei sind, wird die Position auf der Zeitleiste in Prozent angegeben.

@keyframes meine-animation {
  0% {
    /* Eigenschaften zum Beginn der Animation */ 
  }
  50% {
    /* Eigenschaften nach der Hälfte der Animation */ 
  }
  100% {  
    /* Eigenschaften zum Ende der Animation */   
  }
}

Es können auch Werte zusammengefasst werden.

@keyframes meine-animation {
  0% {
    /* Eigenschaften zum Beginn der Animation */ 
  }
  25%, 75% {
    /* Eigenschaften von 1/4 bis 3/4 der Animation */ 
  }
  100% {  
    /* Eigenschaften zum Ende der Animation */   
  }
}

Beispiel 1: Objekte bewegen und Farbe wechseln

Das folgende Beispiel zeigt, wie eine Keyframe-Animation aufgebaut sein kann. Wir bewegen einen <div> zwischen vier Koordinaten und wechseln zusätzlich die Farbe.

<div class="mein-element"></div>
.mein-element {
  height:120px;
  width:120px;
  background:silver;
  border-radius: 100%;
  position: absolute;
  animation-name:meine-animation;
  animation-duration:4s;
  animation-iteration-count:infinite;
}

@keyframes meine-animation {
  0%, 100% {
    background-color:red;
    top:50px;
    left:50px;
  }

  25% {
    background-color:gold;
    top:50px;
    left:600px;
  }

  50% {
    background-color:lime;
    top:600px;
    left:600px;
  }

  75% {
    background-color: blue;
    top:600px;
    left:50px;
  }
}

Beispiel anschauen

Mit weiteren Elementen und der animation-delay-Eigenschaft, kann der Effekt noch ansprechender gestaltet werden:

<div class="mein-element"></div>
<div class="mein-element"></div>
<div class="mein-element"></div>
<div class="mein-element"></div>
.mein-element:nth-of-type(2) {
  animation-delay:1s;
  animation-fill-mode:backwards;
}

.mein-element:nth-of-type(3) {
  animation-delay:2s;
  animation-fill-mode:backwards;
}

.mein-element:nth-of-type(4) {
  animation-delay:3s;
  animation-fill-mode:backwards;
}

/* Der übrige CSS-Code ist mit oben gezeigten Beispiel identisch */

Beispiel anschauen

Beispiel 2: Animierte Grafik

Das zweite Beispiel zeigt einen Hai der im Meer schwimmt. Der Hai selbst bewegt sich dabei nur minimal nach links und rechts, der Effekt entsteht in erster Linie durch die Verschiebung des Hintergrunds. Das Beispiel verwendet mehrere Hintergrundbilder um ohne überflüssige HTML-Elemente auszukommen. Darüber hinaus wird in diesem Beispiel die Kurzschreibweise für Animationen verwendet.

<div></div>
div {
  width:800px;
  height:600px;
  background-color:#034557;
  background-image: url(hai.png), url(fische.png);
  background-position: top 150px left 120px, 110px 90px;
  background-repeat: no-repeat, repeat-x;
  animation:ocean .75s infinite linear;
}

@keyframes ocean {
  0%{
    background-position: top 150px left 120px, 110px 90px;
  }

  50% {
    background-position: top 150px left 100px, 362px 90px; /* Die Fische werden um die Häfte der Breite der fische.png-Grafik verschoben */
  }

  100% {
    background-position: top 150px left 120px, 615px 90px; /* Die Fische werden um die volle Breite der fische.png-Grafik verschoben */ 
  }
}

Beispiel anschauen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Gezeichnete SVG-Pfade mit CSS animieren

$
0
0
svg-css-line-draw-animation

Mit SVG/CSS-Animationen lassen sich ansehnliche Effekte erzeugen. Sehr beliebt ist beispielsweise der sog. »Line-Draw-Effect«, bei dem ein Pfad animiert gezeichnet wird. Um den Effekt herzustellen, behilft man sich einem Trick im Zusammenhang mit gestrichelten Linien. In diesem Beitrag erklären wir das Grundprinzip anhand eines leicht nachvollziehbaren Beispiels.

SVG- und CSS-Basisgestaltung

Zunächst muss ein entsprechender SVG-Pfad gezeichnet werden. Dazu kann Illustrator, Inkscape oder ein anderes Vektor-Programm genutzt werden. Was ihr bei der Erstellung von SVG-Grafiken beachten solltet, haben wie hier bereits zusammengefasst.

Das Endergebnis sieht nun wie folgt aus: Innerhalb von <svg> wird ein Pfad-Objekt (<path>) erzeugt. Dieser Pfad erhält das Class-Attribut »object«. Innerhalb des d-Attributs werden die Kurvenpunkte notiert.

<!-- gekürzter Code! -->
<svg>
  <path class="object" d="M116.6,250c-15.4,43.1-20.6, … "/>
</svg>

Der Pfad erhält über CSS einen transparenten Hintergrund (fill) eine Kontur-Farbe (stroke) und eine Kontur-Stärke (stroke-width).

.object {
  fill:none; 
  stroke:grey;
  stroke-width:4;
}

Strichelung und Verschiebung für die Pfadkontur einstellen

Als nächstes kommen die bereits erwähnten gestrichelten Linien zum Einsatz. Wie aus Photoshop oder Illustrator bekannt, kann bei Vektor-Objekten die Kontur gestrichelt dargestellt werden. Es kann sowohl die Länge der Strichelung, als auch die Länge der Abstände zwischen den Strichen festgelegt werden.

  • Über die CSS-Eigenschaft stroke-dasharray wird festgelegt wie lang die Strichelungen bzw. Abstände zwischen den Strichen sind.
  • Mit der CSS-Eigenschaft stroke-dashoffset wird die Strichelung auf dem Pfad verschoben. 

Der Trick funktioniert nun so: Sowohl die Länge der Strichelung (stroke-dasharray) als auch die Verschiebung mittels stroke-dashoffset muss so lang sein, wie der Pfad der gezeichnet werden soll. Es entsteht eine gestrichelte Linie mit sichtbaren Segmenten in Länge des Pfads und mit Lücken in Länge des Pfads. Das sichtbare Segment wird nun so verschoben, dass es genau auf dem Pfad sitzt. Ihr seht also keinen Unterschied zu einer nicht-gestrichelten Kontur. Im nächsten Schritt, wird die Kontur auf dem Pfad verschoben, wodurch der gezeichnete Look entsteht.

Länge des SVG-Pfads mit JavaScript ermitteln

Lästig ist, dass ihr wissen müsst wie lang der Pfad ist, damit ihr die Strichelung exakt einstellen könnt. Um die Länge des Pfads in Erfahrung zu bringen kann folgendes JavaScript eingesetzt werden:

var path = document.querySelector('.object');
var length = path.getTotalLength();
console.log(length);

Kopiert das Snippet in einen <script>-Abschnitt am Ende eures Dokuments. Anschließend steht die Länge des Pfads in der JavaScript-Konsole und kann auf den Code übernommen werden.

Der CSS-Code für das Pfad-Objekt sieht nun so aus:

.object {
  stroke:grey;
  stroke-width:4;
  stroke-dasharray: 1665.7286376953125;
  stroke-dashoffset: 1665.7286376953125;
  fill:none;
}

Pfad animieren

Nun kommt die Animation ins Spiel. Mit Hilfe einer CSS-Keyframe-Animation verschieben wir die gestrichelte Kontur auf den Pfad.

.object {
  …
  animation: dash 2s linear forwards;
}

@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}

Das war auch schon alles. Das fertige Beispiel könnt ihr euch hier anschauen:

Beispiel anschauen

Line-Draw-Animation mit vivus.js

Für die Erzeugung von »Line-Draw-Animationen« existieren einige Tools und Libraries. Mit vivus.js kann der Effekt unkompliziert hergestellt werden.

Folgende Schritte müssen beachtet werden:

  1. SVG zeichnen. Nur <path>-Elemente können animiert werden. Die Pfade dürfen keine Füllung beinhalten und nicht geschlossen sein.
  2. SVG inline oder per <object>-Tag in das Dokument einbetten
  3. vivus.js herunterladen und einbetten
  4. vivus.js in eigenem <script>-Tag laden und Parameter festlegen
<body>

<svg id="fische-linedraw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 554.9 242">
 <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

<script src="vivus.js"></script>

<script>
 new Vivus('fische-linedraw', {
 type: 'scenario-sync', 
 duration: 30, 
 start: 'autostart', 
 });
</script>

</body>

Beispiel anschauen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Scrolling-Effekte: CSS-Klasse per JavaScript hinzufügen, wenn sich ein Element im Viewport befindet

$
0
0
scroll-effect-website

Scrolling-Effekte sind ein beliebtes Gestaltungsmittel auf modernen Websites. Sinnvoll eingesetzt können Sie dazu beitragen, dass eine Website gleichermaßen erfolgreich als auch ästhetisch ansprechend ist. In diesem Beitrag findet ihr ein JavaScript-Snippet, mit dem Elemente eine CSS-Klasse erhalten, sobald Sie sich im Viewport befinden. Die Klasse kann optional wieder entfernt werden, sobald sich das Element nicht mehr vollständig im Viewport befindet.

Das JavaScript für den Scrolling-Effekt

Das folgende JavaScript fügt einem Element mit der CSS-Klasse .mein-element zusätzlich die Klasse .visible hinzu, wenn das Element vollständig im Viewport sichtbar ist. Die else-Bedingung innerhalb des JavaScripts kann entfernt werden, um die CSS-Klasse nur hinzuzufügen, aber nicht wieder zu entfernen.

Beispiel anschauen

<div class="mein-element"></div>
<div class="mein-element"></div>
 …
<div class="mein-element"></div>
function isElementInViewport(element) {
 var rect = element.getBoundingClientRect();
 return (
  rect.top >= 0 &&
  rect.left >= 0 &&
  rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
 rect.right <= (window.innerWidth || document.documentElement.clientWidth)
 );
}

var elements = document.querySelectorAll(".mein-element");
 
function callbackFunc() {
 for (var i = 0; i < elements.length; i++) {
  if (isElementInViewport(elements[i])) {
 elements[i].classList.add("visible");
}

 /* Else-Bedinung entfernen, um .visible nicht wieder zu löschen, wenn das Element den Viewport verlässt. */
  else { 
   elements[i].classList.remove("visible");
  }
 }
}
 
window.addEventListener("load", callbackFunc);
window.addEventListener("scroll", callbackFunc);
.mein-element {
  background:red;
  height:50vh;
  max-width: 500px;
  margin:0 auto;
  margin-bottom:2em;
}

.visible {
  background: lime;
}

Elemente beim Scrollen einfaden

Mit ein wenig CSS kann nun sehr einfach ein Fade-In-Effekt hergestellt werden

Beispiel anschauen

.mein-element {
  opacity: 0;
  transition: opacity .5s ease-in-out;
}


.visible {
  opacity: 1;
}

Elemente abwechselnd von links und rechts einfahren lassen

Eine geringe Anpassung am CSS-Code lässt die Elemente abwechselnd von links und rechts einfahren und einfaden.

Beispiel anschauen

.mein-element {
  opacity: 0;
  transition: all .25s ease-in-out;
}

.mein-element:nth-of-type(odd) {
  transform: translateX(-90%);
}

.mein-element:nth-of-type(even) {
  transform: translateX(90%);
}

.mein-element.visible {
  transform:translateX(0);
  opacity: 1;
}

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Getippter Text mit CSS-Animationen

$
0
0
typing-css

Wenn der Eindruck erweckt werden soll, als würde ein Text getippt, wird häufig auf JavaScript zurückgegriffen. Wir haben selbst einige Tools zu diesem Zweck zusammengetragen. Doch der Effekt lässt sich auch mit einer CSS Keyframe-Animation erstellen. In diesem Beitrag zeigen wir wie es geht und was sich dennoch mit JavaScript optimieren lässt.

Die ch-Einheit und der Monospace-Font

Die Einheit ch definiert in CSS eine Breite, die der Null (0) in der gewählten Schriftart entspricht. Bei einem Monospace-Font sind alle Buchstaben gleich breit. Das machen wir uns zu nutze, indem wir die Länge des Textes von der Breite 0 auf die Breite 48ch animieren. Die 48 kommt hier zustande, da der Text des folgenden Beispiels eine Länge von 48 Zeichen umfasst.

steps()

In einer CSS-Keyframe-Animation kann die timing-function in steps() angegeben werden. Die steps()-Funktion legt fest, wie viele Abstufungen zwischen zwei Schlüsselbildern erzeugt werden sollen. Wenn wir die Anzahl der steps() mit der Anzahl der Buchstaben (48 in unserem Beispiel) gleich setzen, und gleichzeitig die Breite des Textes von 0 auf 48ch animieren, erscheinen die Buchstaben einzeln nacheinander.

white-space: no-wrap;

Wenn der Text aus mehreren Wörtern besteht, bricht die Animation am Leerzeichen ab. Nach dem Leerzeichen werden dann immer ganze Wörter eingeblendet, nicht mehr einzelne Buchstaben, wie eigentlich gewünscht. Mit Hilfe von white-space: no-wrap; beheben wir das Problem.

<h1 class="animated-text">Danke für deinen Besuch auf kulturbanause.de =:)</h1>
.animated-text {
 font-family: monospace;
 overflow: hidden;
 height:1.1em;
 word-wrap: break-word;
 white-space: nowrap;
 animation: typing 4s steps(48) forwards;
}

@keyframes typing {
  from { 
    width: 0;
  }

  to { 
    width: 48ch;
  }
}

Beispiel anschauen

Animation mit JavaScript vereinfachen

Etwas lästig an der oben beschriebenen puren CSS-Variante ist, dass die Anzahl der Buchstaben (48) manuell zwei Mal im Code notiert werden muss: Einmal innerhalb der animation-Eigenschaft und einmal innerhalb der @keyframes.

Mit ein wenig JavaScript (jQuery) können wir Anzahl der Zeichen innerhalb des Selektors .animated-text automatisch auslesen.

var character_count = $('.animated-text').text().length;

Anschließend bauen wir die Zeichenzahl innerhalb der animation-Eigenschaft wieder ein, und ergänzen den Selektor .animated-text entsprechend.

$('.animated-text').css('animation', 'typing 4s steps(' + character_count + ') forwards').css('font-family', 'monospace');

Die @keyframes statten wir ebenfalls mit der ausgelesenen Zahl aus und fügen im <head> einen Style-Abschnitt ein, der die @keyframes-Regel beinhaltet.

$('<style>@keyframes typing {from {width: 0; } to {width: ' + character_count + 'ch; } }</style>').appendTo('head');

 

Beispiel anschauen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Animiertes Hamburger-Icon mit HTML, CSS und JavaScript

$
0
0

Das Hamburger-Icon hat sich als Kennzeichnung für Menüs und Navigationselemente durchgesetzt. Auch wenn das Icon kritisiert wird und nicht in allen Anwendungsfällen gut funktioniert ist es doch in den meisten responsiven Websites anzutreffen. Besonders beliebt sind animierte Hamburger-Icons die per Klick in ein Schließen-Icon überführt werden. In diesem Beitrag archivieren wir ein Code-Snippet das dieses Verhalten herstellt.

HTML-Grundaufbau des Hamburger Icons

Das Hamburger Icon besteht aus einem Container-<div>und einem darin enthaltenen <div>. Der enthaltene <div> erzeugt später die drei Striche für das Icon.

<div id="hamburger" class="hamburger-icon-container">
  <span class="hamburger-icon"></span>
</div>

CSS-Code für das Basis-Styling des Hamburger-Icons

Das Styling des Containers setzt sich aus Breite und Höhe, sowie aus der Farbe zusammen. In diesem Beispiel verwenden wir die CSS-Variable currentColor. Die Variable beinhalte immer automatisch den Farbwert der der color-Eigenschaft zugewiesen wurde. Anschließend weisen wir background und border den currentColor-Wert zu und können somit beide Farben über eine zentrale Position steuern. Damit die einzelnen Striche des Hamburger-Icons absolut positioniert werden können, erhält der Container zusätzlich eine relative Positionierung.
Die einzelnen Striche werden mit ::before und ::after realisiert. Dazu stylen wir den im Container enthaltenen <div> erst einmal wie gewünscht. Anschließend verschieben wir ::before und ::after nach oben und unten.

/* Basis Styling */

.hamburger-icon-container {
  color:red;
  height: 1.7em;
  width: 1.7em;
  position: relative;
  cursor: pointer;
  background: currentColor;
  border:10px solid currentColor;
  border-radius: 3px;
}

.hamburger-icon,
.hamburger-icon:before,
.hamburger-icon:after {
  content: '';
  position: absolute;
  height: 3px;
  width: 1.7em;
  background: white;
  transition: all .2s ease;
}

.hamburger-icon {
  top: 0.75em
}

.hamburger-icon:before {
  top: -0.55em
}

.hamburger-icon:after {
  top: 0.55em
}

CSS-Code für das Schließen-Icon

Wenn der Button geklickt wird, soll er in ein Schließen-Icons umgewandelt werden. Dazu färben wir den Hintergrund und die Rahmenfarbe des Containers um und positionieren ::before und ::after an der selben Stelle, da nur noch zwei Striche benötigt werden.

Der Übergang vom Hamburger- zum Schießen-Icon

Damit aus den zwei verbliebenen Strichen ein Plus-Icon wird, drehen wir das ::before-Element um 90° ein. Gleichzeitig wird der im Container enthaltene <div> um -135° gedreht, damit das Plus-Icon schräg steht und zum Close-Icon wird.

/* Darstellung wenn das Close-Icon angezeigt werden soll */

.hamburger-active .hamburger-icon-container {
  color:lime;
}

.hamburger-active .hamburger-icon {
  background: transparent;
  transform: rotate(-135deg)
}

.hamburger-active .hamburger-icon:before,
.hamburger-active .hamburger-icon:after {
  top: 0
}

.hamburger-active .hamburger-icon:before {
  transform: rotate(90deg)
}

JavaScript-Code für die Klick-Funktion

Der Wechsel vom Hamburger- zum Schließen-Icon wird mittels JavaScript realisiert. Per Klick tauschen wir dazu eine Klasse.

// Klick-Funktion für #hamburger hinzufügen
document.getElementById('hamburger').addEventListener('click', navStatus);

// Prüfen ob die Navigation geöffnet oder geschlossen ist
function navStatus() {
  if (document.body.classList.contains('hamburger-active')) {
   navClose();
 } 
 else {
   navOpen();
 }
}

// Wenn die Navi geschlossen wird, Klasse für »offen« entfernen
function navClose() {
  document.body.classList.remove('hamburger-active');
}

// Wenn die Navi geöffnet wird, Klasse für »geschlossen« entfernen
function navOpen() {
  document.body.classList.add('hamburger-active');
}

Beispiel anschauen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Viewing all 29 articles
Browse latest View live