Timo: DHTML Menu

Hallo,

ich versuche mir grade ein DHTML menu zu bauen und frage mich wie es richtig geht!?

Ich habe mir zwei divs angelegt der eine ist der Hauptpunkt der andere die unterpunkte...

Nun habe ich das Problem das ich das menu mit 2 functionen belegt habe...
1. onMouseover -->> Menü aufklappen
2. omMouseOut -->> zu klappen

nun habe ich einen flacker effekt wenn ich über die menüleiste fahre...

kann mir vieleicht jemand sagen wie es richtig geht oder ein Beispiel zeigen...?

Danke für eure Hilfe...

Gruss

Timo

  1. Sorry ich hab vergessen euch die Divs zu schicken...

    <!--Anfang Menu-->
    <div id="M1">
    <table width="120" cellpadding="0" cellspacing="0">
    <tr>
    <td align="center"><a class="dhtm" href="#" onMouseover="show(T1)" >Hauptpunkt</a></td>
    </tr>
    </table>
    </div>

    <table width="120" cellpadding="0" cellspacing="2" >
    <tr>
    <td>
    <div id="T1">
    <table width="120" cellpadding="0" cellspacing="0">
    <tr>
    <td class="ShowMenu"><a class="dhtm" href="#" onMouseover="show(T1)" >Menu Punkt</a></td>
    </tr>
    <tr>
    <td class="ShowMenu"><a class="dhtm" href="#" onMouseover="show(T1)" >Menu Punkt</a></td>
    </tr>
    <tr>
    <td class="ShowMenu"><a class="dhtm" href="#" onMouseover="show(T1)" >Menu Punkt</a></td>
    </tr>
    </table>
    </div>
    </td>
    </tr>
    </table>
    <!-- ENDE MENU -->

  2. Hey cool, an einem DHTML bastle ich auch gerade! Ich sag dir nur: du hast dich da auf eine ganz schön knifflige Sache eingelassen!!
    Ich bin schon etwa 2 monate dran!

    Woher das flackern kommt weiß ich nicht, hast du ein Beispiel (--> url??)?

    Also die Idee ist, beim onmouseover des 1.DIVs wird das 2. geöffnet.
    Klar.
    beim onmouseout des 1. DIVs wird ein timer (var timer = window.setTimeout("hide()", 100)) gesetzt, der das 2. nach ein Zeit t schließt.(unsichtbar macht).

    beim onmouseover des 2. DIVs (= onmouseout des 1. DIVs) wird dieser timer wieder gelöscht (window.clearTimeout(timer)), so dass das 2. Div doch nicht geschlossen wird.

    Kapiert?? Das ist so die Grundidee. Hab ich auch lange für gebraucht, bis ich drauf kam un dbis ich es geschnallt hab.

    Gruß
    Christian

    1. mhhh..

      nen uri kann ich noch net anbieten sorry...

      ich denke die version mit dem timer kann nicht richtig sein :)

      ich möchte schon das das menu in echtzeit arbeitet, anders würde es mir auch garnet weiterhelfen.. :)

      Das flackern kommt daher das er halt ständig zwischen den eventhandlern hin und her schaltet (onmouseover=anzeigen, onmouseout=ausblenden) ...

      Danke dir für deine Hilfe ....

      1. Also ich habs auch mim Timer gemacht und es klappt und so arbeiten auch sämtliche DHTML-Menus im Netz (hab mir jede Menge JS-Code, von diversen DHTML-Menus angeguckt)

        der timer ist ja auch nur sinnvoll, damit dass 2.menu nicht direkt beim onmouseout des 1.menus geschlossen wird und dass der anwender dann die Möglichkeit hat vom 1. Menu zum 2. zu springen (wenn zB zwischen zwei Menus Freiraum ist, wo kein mouseEvent greift).

        Das flackern kommt daher das er halt ständig zwischen den eventhandlern hin und her schaltet (onmouseover=anzeigen, onmouseout=ausblenden) ...

        aber die beiden Events können doch NIE gleichzeitig eintreten. oder irre ich mich da?? wieso springt er? der Maus zustand sollte doch eindeutig sein, entweder drauf oder nicht.

        Christian

  3. hi,

    hilft Dir sowas weiter? http://www.wendenburg.de/test/divNaviStat.html

    Prinzip: onmousemove und onmouseout werden registriert, bei onmouseout wird eine Verzoegerung abgewartet, in der geprueft wird, ob inzwischen nochmals onmousemove feuert.

    Gruesse  Joachim

    1. Hey danke,

      genauso hab ich mir das vergestellt :)

      Grossen dank

      Timo