Dominik: Zwei Probleme

Hallo Forum,
ich bin noch Anfänger in JavaScript und habe zwei Probleme.

1. Ich habe folgende Funktion geschrieben:

function dehnen(maxhoehe) {
hoehe += 10;
document.all.menu.style.height = hoehe;
document.all.menu2.style.height = hoehe;
 if (hoehe < maxhoehe) {
 setTimeout("dehnen(maxhoehe)", 500);
 }
}

menu und menu2 sind zwei <div>-elemente die direkt übereinander liegen, hoehe ist eine globale Variable. Aufgerufen wird die Funktion mit dehnen(200); hoehe wird zuvor auf 0 gestellt.
Dann bekomm ich immer den folgenden Fehler:

Zeile: 0
Feler: 'maxhoehe' ist undefiniert

2. In jedem dieser beiden <div> liegt je eine Tabelle. Selbst wenn ich Height von den <div> auf 0 setze seh ich immer noch die kompletten Tabellen. Ich hab gehört man kann es so einstellen, dass der Inhalt der <div>-Elemente sich deren Größe anpasst. Wie geht das?

  1. Hallo Forum,
    ich bin noch Anfänger in JavaScript und habe zwei Probleme.

    1. Ich habe folgende Funktion geschrieben:

    function dehnen(maxhoehe) {
    hoehe += 10;
    document.all.menu.style.height = hoehe;
    document.all.menu2.style.height = hoehe;
    if (hoehe < maxhoehe) {
    setTimeout("dehnen(maxhoehe)", 500);
    }
    }

    menu und menu2 sind zwei <div>-elemente die direkt übereinander liegen, hoehe ist eine globale Variable. Aufgerufen wird die Funktion mit dehnen(200); hoehe wird zuvor auf 0 gestellt.
    Dann bekomm ich immer den folgenden Fehler:

    Zeile: 0
    Feler: 'maxhoehe' ist undefiniert

    1. In jedem dieser beiden <div> liegt je eine Tabelle. Selbst wenn ich Height von den <div> auf 0 setze seh ich immer noch die kompletten Tabellen. Ich hab gehört man kann es so einstellen, dass der Inhalt der <div>-Elemente sich deren Größe anpasst. Wie geht das?

    Hallo Dominik,
    zu 1.: verwende setTimeout("dehnen("+maxhoehe+")", 500); in der Funktion
    zu 2.: div-Objekte werden automatisch auf die Größe gebracht, daß der Inhalt reinpaßt. Es gibt aber die Möglichkeit mit style='overflow:hidden' (klappt glaub ich nur bei Text) bzw. mit der style-Angabe clip (Achtung: unterschiedliche Syntax bei IE und Netscape) die gewünschten Resultate zu erzielen
    MfG Lutz T.

    1. Hallo Forum,
      ich bin noch Anfänger in JavaScript und habe zwei Probleme.

      1. Ich habe folgende Funktion geschrieben:

      function dehnen(maxhoehe) {
      hoehe += 10;
      document.all.menu.style.height = hoehe;
      document.all.menu2.style.height = hoehe;
      if (hoehe < maxhoehe) {
      setTimeout("dehnen(maxhoehe)", 500);
      }
      }

      menu und menu2 sind zwei <div>-elemente die direkt übereinander liegen, hoehe ist eine globale Variable. Aufgerufen wird die Funktion mit dehnen(200); hoehe wird zuvor auf 0 gestellt.
      Dann bekomm ich immer den folgenden Fehler:

      Zeile: 0
      Feler: 'maxhoehe' ist undefiniert

      1. In jedem dieser beiden <div> liegt je eine Tabelle. Selbst wenn ich Height von den <div> auf 0 setze seh ich immer noch die kompletten Tabellen. Ich hab gehört man kann es so einstellen, dass der Inhalt der <div>-Elemente sich deren Größe anpasst. Wie geht das?

      Hallo Dominik,
      zu 1.: verwende setTimeout("dehnen("+maxhoehe+")", 500); in der Funktion
      zu 2.: div-Objekte werden automatisch auf die Größe gebracht, daß der Inhalt reinpaßt. Es gibt aber die Möglichkeit mit style='overflow:hidden' (klappt glaub ich nur bei Text) bzw. mit der style-Angabe clip (Achtung: unterschiedliche Syntax bei IE und Netscape) die gewünschten Resultate zu erzielen
      MfG Lutz T.

      Das erste Problem ist damit gelöst aber die Tabelle ist immer noch komplett zu sehen.

      1. hi,

        Das erste Problem ist damit gelöst [...]

        kaum, den document.all ist IE-only und zudem veraltet. Wirf mal ein Blick auf diesen Test, der koennte das sein, was Du suchst:

        http://www.wendenburg.de/test/zoom.html

        Läuft auf NC4x, Mozilla, IE ab 4, Opera weiss ich jetzt nicht.

        Gruesse  Joachim