Philip Salzmann: Tabellenbreite mit Javascript langsam ändern!

Hallo Leute!

Also ich habe eine Website gebastelt, die eine Tabelle beinhaltet in die  der Content per PHP geladen wird (will keine iFrames benutzen). Damit man auch mal das schöne Hintergrundbilchen sieht hätte ich es gerne so gemacht dass man auf einen Menüpunkt drückt, die Tabelle sich zusammenzieht, die Seite neu geladen wird (mit dem Parameter dass die Tabelle unsichtbar ist) und der Content Bereich sich dann wieder vergrößert.

Hab leider noch nie was in Javascript gemacht und mir das ganze mehr oder weniger aus anderer Programmiersprachen-Kenntnis zusammengebastelt:

function fade(id, id2) {
document.getElementById(id).className = "invisible";

loop(id2, 10);
}

var i = 0;

function loop(id2, ipos) {
 if (ipos > 0) {
   i = ipos;
 } else {
   i = 0;
 }

while (i <= 30) {
 i++;
 document.getElementById(id2).style.width = i + "px";
 window.setTimeout("loop('"+id2+"', " + i + ")", 50);
 }

}
</script>

Hab schon einige Varianten ausprobiert, derzeit siehts so aus dass sich der Browser aufhängt :D

also id & id2 sind beides Tabellen, die eine ist die mit dem Text und soll sofort verschwinden (id) und die andere ist der Rest der sich zusammen ziehen soll (id2).

Helft mir bitte ich weiß nicht weiter ;-)

  1. Hallo,

    Ich würde nicht "id" als Variablennamen verwenden.
    Könnte mir vorstellen, das das Javascript intern schon verwendet und deshalb Probleme bekommt.

    Keine Ahnung ob das jetzt daran liegt...

    Gruß Ron

  2. Hallo Philip,

    var i = 0;

    function loop(id2, ipos) {
    if (ipos > 0) {
       i = ipos;
    } else {
       i = 0;
    }

    while (i <= 30) {
    i++;
    document.getElementById(id2).style.width = i + "px";
    window.setTimeout("loop('"+id2+"', " + i + ")", 50);
    }

    }
    ...derzeit siehts so aus dass sich der Browser aufhängt :D

    kein Wunder. Wenn ich das richtig sehe, ruft sich die Funktion loop in der while-Schleife zig-mal verzögert selbst auf, um sich in der while-Schleife zig-mal verzögert selbst aufzurufen, um .... Einmal würde reichen.

    Helft mir bitte ich weiß nicht weiter ;-)

    etwas weiter unten wird ein ähnliches Problem behandelt.

    https://forum.selfhtml.org/?t=140348&m=912000

    Ob das, was Du da vorhast, überhaupt funktioniert, möchte ich aber bezweifeln, da, so weit ich weiß, der IE Tabellen nicht kleiner macht, als es der Inhalt zulässt.

    Gruß, Jürgen

    1. hi,

      Ob das, was Du da vorhast, überhaupt funktioniert, möchte ich aber bezweifeln, da, so weit ich weiß, der IE Tabellen nicht kleiner macht, als es der Inhalt zulässt.

      Auch der IE hält sich an height, wenn man es mit overflow:hidden kombiniert.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hallo wahsaga,

        Auch der IE hält sich an height, wenn man es mit overflow:hidden kombiniert.

        ach so. Dann bleibt aber noch die setTimeout-Lawine.

        Gruß, Jürgen