Beat: Elemente fließend ein- / ausblenden

Beitrag lesen

Ich habe hier ein script zum ein- und ausblenden von Elementen:

function einblenden(div) {

with(document.getElementById(div).style){
if(display=="none")
{
display="inline-block";
}
}
}

  
Das finde ich etwas sehr murksig.  
Ein und ausblenden sollte besser durch das schreiben von Klassen geschehen.  
Ich habe dazu extra toggleClass bzw removeClass und addClass in meiner Standard Lib.  
  
Das zweite Problem ist, dass diese Funktion vorgibt zu wissen, was der richtige display-typ für ein sichtbares Element ist. Falls du dein CSS aber ändern musst, musst du zwangsläufig auch diese Funktion ändern.  
  
Auch ist der Funktionsname schlicht falsch. Er sollte heissen:  
  
toggleDisplayTypeNoneToInlineBlockById().  
  

> Diese Aktion möchte ich nun fließend gestalten und möglichst die Dauer definieren können. In einem Script zum fließenden scrollen funktioniert dies mit:  
> ~~~javascript

 var duration=500;  

> 

Gibt es da eine simple Lösung?

Ja, auch diese wäre mit CSS transition zu schreiben.
Du siehst also dass auch dies ein Argument ist, eine Klasse umzuschreiben statt individuelle-styles zu setzen

Ich bin mit JS leider noch nicht so erfahren und finde im Netz nichts passendes.

Ich würde dir eine Bibliothek empfehlen wie JQuery, die dir das setzen und löschen von Klassen einfach machen.

Dein Problem aber bleibt (wie durch Mudguard geschrieben), wie du zwischen Klassen oder diskreten Zuständen fadest. Das kann man nicht. Man kann aber mittels transition die Dimension eines Elements beeinflussen, bevor man es ganz ausblendet.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische