Luke: DIV animiert vergrößern

Ich will einen Effekt ähnlich wie auf http://moofx.mad4milk.net/ erstellen, ein DIV soll bei klick auf einen Button 'aufscrollen'. Mein Versuch bisher:

function resizeDivTo(div_id, div_height)
{
 var div = document.getElementById(div_id);

if(div.offsetHeight < div_height)
 {
  var h = div.offsetHeight + 1;
  div.style.height = h+'px';
  window.setTimeout("resizeDivTo(div_id, div_height);", 1000);
 }
}

Vergrößert das DIV das vorher die Höhe 0 hat auf 3px; - einmalig. Versteh ich nicht. Wie könnte man's richtig machen?

  1. Hi!

    Der Fehler liegt höchstwahrscheinlich in der Zeile:

    window.setTimeout("resizeDivTo(div_id, div_height);", 1000);

    Zitat SELFHTML:

    An setTimeout() gekoppelte Funktionsaufrufe können auch Parameter enthalten. Berücksichtigen Sie dabei, dass lokale Variable dann nicht mehr zur Verfügung stehen. Eine Übergabe der Werte mittels  Zeichenkettenverknüpfung ist jedoch jederzeit möglich.

    Also window.setTimeout("resizeDivTo(" + div_id +"," + div_height + ");", 1000);

    Gruß aus Iserlohn

    Martin

    --
    Das Hirn ist der kostbarste und wertvollste Besitz des Menschen, weshalb man es nur _sehr_ selten und aeusserst sparsam gebrauchen sollte!
    Selfcode: ie:{ fl:( br:^ va:) ls:# fo:| rl:( n4:( ss:| de:> js:) ch:? sh:( mo:| zu:)
    1. Hi!

      Der Fehler liegt höchstwahrscheinlich in der Zeile:

      window.setTimeout("resizeDivTo(div_id, div_height);", 1000);

      Richtig das war's! Noch ein kleiner Bugfix, Hochkommas um div_id, weil's n String ist; So geht's:

      window.setTimeout("resizeDivTo('" + div_id +"'," + div_height + ");", 20);

      Vielen Dank!!