SVG-Bilder im Web: Farben ändern und animieren mit CSS

SVG-Bilder sind eine tolle Sache – besonders wenn man sie auf Webseiten einbindet: Die Speichergröße ist gering, die Images sind ohne Qualitätsverlust skalierbar und sogar der Internet Explorer 9 kann damit etwas anfangen. Im Gegensatz zu herkömmlichen Bildformaten, haben sie aber noch einen Vorteil: Mit CSS kann ihre Farbe verändert und auf Wunsch sogar animiert werden.

Das Markup

[html]<img src="logo.svg" class="svg" id="logo" />[/html]

Vorbereitung mit JavaScript

Zuerst muss via jQuery der Inhalt der .svg-Bilddatei in den Image-Tag eingefügt werden. Dies kann natürlich auch direkt im Markup erledigt werden. Beide Methoden haben Vor- und Nachteile.
[js]
$(‚img.svg‘).each(function(){
var $img = $(this),
imgID = $img.attr(‚id‘),
imgClass = $img.attr(‚class‘),
imgURL = $img.attr(’src‘);

$.get(imgURL, function(data) {
// Get the SVG tag, ignore the rest
var $svg = $(data).find(’svg‘);


// Add replaced image’s ID to the new SVG
if(typeof imgID !== ‚undefined‘) {
$svg = $svg.attr(‚id‘, imgID);
}
// Add replaced image’s classes to the new SVG
if(typeof imgClass !== ‚undefined‘) {
$svg = $svg.attr(‚class‘, imgClass+‘ replaced-svg‘);
}

// Remove any invalid XML tags as per http://validator.w3.org
$svg = $svg.removeAttr(‚xmlns:a‘);

// Replace image with new SVG
$img.replaceWith($svg);
});

});
[/js]
Quelle: stackoverflow.com

Farbe des Bildes ändern

Nun kann direkt via CSS die Farbe des SVG-Bildes angepasst werden:
[css]#logo path {color: red}[/css]

Farbe animieren

Natürlich ist es jetzt auch möglich den gewünschten Farbwert via Animation zu verändern. Im folgenden Beispiel passiert das bei Mouse-Hover:
[css]#logo path {
-webkit-transition: all 1;
-moz-transition: all 1;
-ms-transition: all 1;
-o-transition: all 1;
transition: all 1;
}
#logo:hover path {color: green}
[/css]

Das ganze funktioniert in allen Browsern die mit SVG-Bildern und CSS3-Transitions etwas anfangen können.

OSX: Ordner schneller kopieren mit dem Terminal

Beim Sichern auf eine externe Festplatte passieren wundersame Dinge: Der Finder berechnet für das Kopieren von 35 GB eine Dauer von mehreren Stunden. Das ist eigenartig, da innerhalb der ersten 15 Sekunden fast 300 MB kopiert wurden, der Vorgang danach aber spürbar langsamer wird. Die Restzeit von Anfangs 20 Minuten steigt auf mehrere Stunden. Handelt es sich hier um einen Fehler?

Kopiert man den Ordner stattdessen über das Terminal ist man plötzlich viel schneller am Ziel.

Ordner kopieren via Terminal

[js]cp -r [Zu kopierender Ordner] [Ziel-Ordner]/[/js]


Auch hier stelle ich nach mehreren Minuten Schwankungen der Kopiergeschwindigkeit fest, allerdings nicht so stark wie beim Finder. Warum das allerdings so ist, entzieht sich meines Wissens. Mehrere Tests bestätigten aber meine Vermutung. Meine klare Empfehlung also: Wenn der Finder beim Kopieren in den Winterschlaf fällt, einfach den Vorgang via Terminal starten.

Animation von Farbwerten mit CSS3-Transition, ohne jQuery

Das Problem ist bekannt: Mit der animate()-Methode von jQuery können lediglich numerische Style-Variablen animiert werden. Was aber machen wenn eine Farbwert-Animation benötigt wird? Beispielsweise um bei Hover die Hintergrundfarbe eines Elementes gleichmäßig zu ändern.

CSS3


Quick-Animationen: CSS3 macht’s möglich

Entweder man bindet ein Plugin ein, verwendet gleich eine große Library oder aber man nutzt die Möglichkeiten die einen CSS3 schon heute bietet. Die Transition-Eigenschaft, welche in allen modernen Browsern gut funktioniert, ist in der Lage diese Anforderung in wenigen Zeilen umzusetzen.

Beispiel: Hintergrund-Animation bei Hover

Ja wirklich, dieser Code reicht aus, um unsere Hintergrund-Animation auf das Element #foo anzuwenden.
[css]#foo {
background:red;
-webkit-transition:background 1s;
-moz-transition:background 1s;
-o-transition:background 1s;
transition:background 1s
}
#foo:hover {
background:yellow;
}[/css]
Die Transition-Eigenschaft (inkl. aller Browser-Prefixe) sorgt dafür, dass jegliche Änderung der background-Eigenschaft, mit einer 1-sekündigen-Animation durchgeführt werden. Das kann natürlich auch abgeändert werden, um zum Beispiel die Schriftfarbe (color) oder die Rahmen-Farbe (border-color) zu animieren. Natürlich bietet die Transition-Eigenschaft die Möglichkeit fast alle CSS-Werte animierend zu ändern. Ganze Animations-Abfolgen können via Keyframe-Animation realisiert werden.

Noch schneller geht es mit SCSS/SASS und Compass:
[css]#foo {background:red; @include transition(background 1s)}
#foo:hover {background:yellow}[/css]

Soll der Effekt erst ab einer bestimmten User-Interaktion starten, muss die gewünschte Zielfarbe einfach in einer Klasse gespeichert werden, welche man dem Element via JavaScript zuweist. Viel Spaß!

Disney Fish Hooks: Video-Komplettlösung für alle Level, Äpfel und Welten

Disney Fish Hooks Lösung

Disney Fish Hooks

Elegant ins Ziel fallen und dabei viele Äpfel essen: So könnte man das Spielkonzept von Disneys Gratis-Game „Fish Hooks„, erhätlich für iPhone und iPad, beschreiben. In über 50 Welten soll Fisch Milo gut genährt zum Ausgang fallen, schweben oder geworfen werden. Das Gameplay erinnert phasenweise an eine Unterwasser-Version des Topseller Cut the Rope, jedoch mit sehr viel Charakter-Liebe. So können beispielsweise fünf von Milo’s Freunden freigeschalten und als Avatare im Spiel benutzt werden.

Wer bei einem Level nicht weiterkommt oder den richtigen Trick für alle drei Äpfel sucht, der findet hier eine Video-Komplettlösung für alle Welten. Viel Spaß!

Freshwater High – Video-Anleitungen

Bild Freshwater High

Freshwater High

Baldwin’s Classroom – Video-Anleitungen

Bild Baldwin's Classroom

Baldwin’s Classroom

100 Floors: Video-Komplettlösung und Tipps für alle Level

Ein Fahrstuhl, einhundert Stockwerke, einige Werkzeuge und das eigene Handy bzw. Tablet: Das sind die Erfolgszutaten des Games „100 Floors„. Das Gratis-Spiel für Android und iOS wird von Millionen Spielern weltweit gefeiert. Ziel des Spieles ist es mit dem Fahrstuhl ganz nach oben zu gelangen. Doch in jedem Stockwerk wartet ein Rätsel. Dann heißt es fleißig probieren und tüfteln: Mit bis zu fünf Gegenständen muss man Knöpfe reparieren, Mauern einschlagen, Tiere vertreiben und manchmal sogar das Handy bzw. Tablet schütteln oder kippen.

Wer in einem Stockwerk festsitzt und nicht weiter weiß, dem sind die folgende Video-Anleitungen wärmstens zu empfehlen. So kommt ihr bestimmt ganz noch oben – Viel Spaß!

Alle Level, Kompakt

Bild 100 Floors

100 Floors Level 18

Anleitung pro Level im Detail

Bild 100 Floors

Knifflig, Level 30