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