Fabian: Problem mit Verändern der Höhe eines <div>s

Beitrag lesen

Hallo!

Deine Fehlerbeschreibung ist recht knapp.

Entschuldigung. Ich versuche mich zu bessern.

function slide(box, height, me){
var i = 0;
diese lokale Variable wird bei jedem Aufruf auf "0" gesetzt. Verwende für "i" eine globale Variable;

Ist gemacht.

var box_height = window.setInterval("slide()", 80);

warum startest du das Interval jedesmal. Hier wäre setTimeout besser;

Ok. Ich habe es jetzt so versucht:

  
var i = 0;  
var lastOpenedBox = null;  
  
function openBox(box, height, me){  
 if(lastOpenedBox != null){  
    closeBox(lastOpenedBox);  
  }  
 aktiv = window.setTimeout("slide(box, height, me)", 50);  
}  
function closeBox(lastOpenedBox){  
 document.getElementById(lastOpenedBox).style.display = "none";  
}  
  
function slide(box, height, me){  
 document.getElementById(box).style.height = i + me;  
 document.getElementById(box).style.display = "block";  
 i++;  
 if( i == height ){  
  window.clearTimeout(aktiv);  
 }  
}  

Aber die Firefox-Konsole beanstandet, dass box in der 8.ten Zeile meines Beispiels nicht definiert ist.

document.getElementById(box).style.height = i + me;
document.getElementById(box).style.display = "block";
i++;
if( i == height ){

diese Abfrage ist riskant, da "me" ja kein Teiler von "height" sein muss. Prüfe lieber auf ">" und begrenze i dann auf "height"

Das verstehe ich nicht!? Was meinst du mit Teiler? "me" soll die MassEinheit sein.

Vielen Dank für deine Hilfe!
Liebe Grüße, Fabian