comunicout: clip.rect() - Abbruchbedingung

Beitrag lesen

welcome to electro-smog therapy
 - - - - - - - - -

Hallo Forumler_Innen,
Ich beschäftige mich zur Zeit mit dynamischen Navigationen mittels
HTML und JavaScript. Nun habe ich eine Navigation, die direkt am
oberen Bildschirmrand platziert ist. Sie beinhaltet ein paar Haupt-
navigationspunkte, welche für sich noch Untermenüpunkte besitzen.
Diese lassen sich durch einen OnMouseOver auf einen der Hauptpunkte
dynamisch ausfahren (nach unten). Um das Ganze zu realisieren habe
ich jeden Navpunkt (inkl. seiner Unterpunkte) in einen Div gepackt
und diesen mittels style.clip =rect(bla px) so weit abgeschnitten,
dass lediglich der erste Punkt (Hauptnavigationspunkt) sichtbar ist:

Folgende Skizze soll diese mal veranschaulichen:
|------------|
|  Kontakt   | <= sichtbar
|------------|
|Unterpunkt 1| <=|
|------------|   |= mittels rect()
|Unterpunkt 2| <=|  verborgen
|------------|

Nun gut, das Menü funktioniert in so fern, dass sich die einzelnen Menüs
bereits auf- und zuklappen lassen. Nur habe ich bei der SlideIn() Funktion
ein paar Schwierigkeiten. Und zwar starte ich die funktion mit einem Timeout:
 nShow=setInterval("SlideIn(" + Div_ID + ")",50)
In setInterval wird der dritte wert von rect() (also der für 'unten')
jeweils um 1 erhöht.. bis schließlich das ganze Menü ausgefahren ist.
und hier liegt auch mein problem:
Da ich die anzahl vorhandener Untermenüs für einen Menüpunkt variabel
belassen möchte, habe ich kein korrektes Abbruchkriterium. denn die
eigentliche höhe des Divs (Menüs) ist mir ja nicht bekannt.
==>FRAGE 1:
Hört die Funktion, in der das rect() um 1 erhöht wird, automatsich auf,
sobald die maximale Größe des Divs erreicht ist ? Bzw. wird der Befehl
trotzdem ausgeführt, wenn einer der Werte höher als sein Originaler ist ?
==>FRAGE 2:
Gibgt es eine Möglichkeit die komplette Größe eines Divs - trotz dass
dieses mit rect() beschhnitten wurde - zu ermitteln ?
--
Hoffe ich konnte mich deutlich genug ausdrücken
--
Für jegliche Antworten,Fragen,Meinungen besten Dank im Voraus

mfg
comunicout

mfg
comunicout

--