Neben dem setTimeout Befehl den Javascript von sich aus bietet gibt es in jquery weitere Möglichkeiten ein DOM-Element nach einer definierten Zeit auszublenden.
Ziel soll es sein eine Drupal-Status-Meldung nach 3 Sekunden automatisch ausfaden zu lassen..
Dazu habe ich mir in der page.tpl.php ein weiteres DIV "gesetzt":
Sauberer wäre es, wie stborchert gerade im IRC bemerkte, die Statusmessage über die Theme Funktionen von Drupal zu erweitern..
<?php
if ($show_messages && $messages) {
print '<div id="status_message_wrapper">';
print $messages;
print '</div>';
}
?>Nutzung der .animate() Funktion ( >=jquery 1.3 )
// Status Messages ausblenden
if($('#status_message_wrapper').length>0){
$('#status_message_wrapper').animate({opacity: 1.0}, 3000).fadeOut('slow', function() {
$(this).remove();
});
}Der Trick ist hier die Animate Funktion eine zu nutzen, um die Zeit des "eingeblendet seins" zu definieren - die opacity sorgt einfach nur dafür dass das DIV in 100% ( also ohne Transparenz ) angezeigt wird, die Zeit wird im zweiten Parameter definiert. Nach 3 Sekunden wird das DIV ausgeblendet und aus dem DOM entfernt..
In jquery 1.4 steht für diesen Effekt die .delay() Funktion zur Verfügung


