Effekte und Animation
Mit der Unterstützung von JavaScript sind eine Reihe von ansprechenden Effekten möglich, welche traditionell mittels Flash implementiert wurden.Anzeigen und Verbergen von Elementen
Elemente beim Laden eines Dokuments verbergen:<p style="display:none">Dieser Absatz wird nicht angezeigt</p>
hide([speed], [callback])
Die Methode hide()
versteckt das ausgewählte Elementset.Ohne
speed
-Argument wird die CSS-Eigenschaft display
auf none
gesetzt.
Der Parameter speed
kann als Zeitdauer in Millisekunden oder über die Schlüsselworte [slow|normal|fast]
definiert werden.
Dabei werden über die definierte Zeitdauer die CSS-Eigenschaften opacity
und size
dekrementiert.
$("img:first").click(function() { $(this).hide("slow"); });
callback
-Funktion bei Animationsmethoden wird nach Ende der Animation gerufen und enthält den Kontext des animierten Elementes (this
).
show([speed], [callback])
Komplementärfunktion zu hide()
.
toggle([speed], [callback])
Wendet die Methode show()
für verborgene Elemente des ausgewählten Elementsets und hide()
für dargestellte Elemente an.Beispiel: Füge vor jeder Tabelle
<table>
eine <span>
-Element der Klasse sh
ein.
Registriere einen click
-Handler auf alle Elemnte der Klasse sh
und implementiere die listener
-Funktion.
$("<span class=\"sh\">[-]</span>").insertBefore("table"); $(".sh").click(function() { $(this).next("table").toggle(); ($(this).next("table").is(":hidden") ? $(this).html("[+]") : $(this).html("[-]")); });
:hidden
erst nach Ende einer Animation (toggle("slow")
) gesetzt ist.
$("<span class=\"sh\">[-]</span>").insertBefore("table"); $(".sh").click(function() { $(this).next("table").toggle("slow", function() { ($(this).is(":hidden") ? $(this).prev(".sh").html("[+]") : $(this).prev(".sh").html("[-]")); }); });
Ein- und Ausblenden von Elementen
fadeOut([speed], [callback])
Blendet das ausgewählte Elementset durch Verändern der CSS-Eigenschaften opacity
aus und setzt am Ende
der Animation die CSS-Eigenschaft display
auf none
.
$("img:first").click(function() { $(this).fadeOut("slow"); });
fadeIn([speed], [callback])
Komplementärfunktion zu fadeOut()
.
fadeTo(([speed], opacity, [callback])
Verändert die Deckkraft des ausgewählten Elementset durch Verändern der CSS-Eigenschaften opacity
.
Die Elemente bleiben auch bei opacity=0
erhalten.
$("img").click(function() { $(this).fadeTo("","0.5"); $("img").not(this).fadeTo("","1"); });
slide
-Effekten funktionieren nicht mit allen HTML-Objekten.
slideDown([speed], [callback])
Einblenden verborgener Elemente durch Inkrementieren der Größe (vertikal).
slideUp([speed], [callback])
Ausblenden sichtbarer Elemente durch Dekrementieren der Größe (vertikal).
($("img:first").is(":hidden") ? $("img:first").slideDown("slow") : $("img:first").slideUp("slow"));
slideToggle([speed], [callback])
Ausblenden sichtbarer Elemente und einblenden verborgener Elemente durch
Verändern der Größe (vertikal).
Animation anhalten
stop()
Die Methode stop()
hält eine laufende Animation auf dem ausgewählten
Elementset an. Die Animation kann durch wiederholten Aufruf der
Animationsmethode fortgesetzt werden.
Animation deaktivieren
Animationseffekte können über die globale Einstellung$.fx.off = true;
deaktiviert werden.Damit wird die Dauer von Animationen auf
0
gesetzt.
eigene Animationen
jQuery stellt einen Methodeanimate()
für die Erstellung eigener Animationen bereit.http://docs.jquery.com/Effects/animate