holgerbuns: Layer ein-/ausblenden mit onmouseover?

hallo,
ich möchte ein links ein navigationsmenü erstellen, wobei sich bei onmouseover über einen link#3 ein layer automatisch einblendet. das ein und ausblenden ist jedoch nicht das problem. das problem ist das wenn ich dem link#3 gleichzeitig den befehl gebe bei onmouseover den layer einzublenden und bei onmouseout ihn auszublenden, das dieser natürlich ausgeblendet wird, sobald ich mit der maus den eigentlichen link#3 verlasse um in das navigations menü des layers zu gelangen. bisher habe ich es so gemacht, das ich dem eigentlichen link#3 nur die funktion onmouseover layer einblenden gegeben habe, und den anderen link#2, link4 usw. die darüber liegen oder darunter liegen den befehl onmouseover layer von link#3 ausblenden. so gibt natürlich einen riesigen quellcode und wird sehr unübersichtlich. gibt es da einen trick oder sonstiges, wie ich erreichen kann, das der layer sich nicht sofort wieder ausblendet wenn ich den link verlasse, sondern so lange sichtbar bleibt bis ich im navigationsmenü dieses layers bin.

gruss und danke
holger_buns

  1. hi,
    »»bisher habe ich es so gemacht, das ich dem eigentlichen link#3 nur die funktion onmouseover layer einblenden
    »»gegeben habe, und den anderen link#2, link4 usw. die darüber liegen oder darunter liegen den befehl onmouseover
    »»layer von link#3 ausblenden. so gibt natürlich einen riesigen quellcode und wird sehr unübersichtlich...

    wieso gibt das soooo viel quellcode. du ersparts dir doch - wenn dus so willst - die kompletten onMouseOuts...
    und wenn du bei jedem link lediglich ein omMouseOver setzen musst, welches bewirkt, dass alle anderen layer
    ausgeblendet werden, nur das, worüber die maus war, nicht, dann ist doch alles blendend or what ?

    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
  2. Hy

    Ich habe ein mögliche Lösung. Ist aber vielleicht nicht die schönste oder beste.
    Mache eine Variabel z.B. Zaehler und setze ihn auf 0.
    Wenn die Maus auf Link#3 geht gibst du in der Funtion an, dass die Variabel auf 3 wechseln soll. Wenn du nun auf den Layer gehst, muss du überprüfen ob die Variabel 3 ist. Wenn ja soll der Layer nicht verschwinden.
    Ich hoffe ich habe dich richtig verstanden und du kommst bei meiner Lösung draus...

    Gruss
    Michy

  3. Hallo Holger,

    ich möchte ein links ein navigationsmenü erstellen, wobei sich bei onmouseover über einen link#3 ein layer automatisch einblendet.
    gibt es da einen trick oder sonstiges, wie ich erreichen kann, das der layer sich nicht sofort wieder ausblendet wenn ich den link verlasse, sondern so lange sichtbar bleibt bis ich im navigationsmenü dieses layers bin.

    Tja, mit genau diesem Problem kämpft wohl jedes dynamische Menü.
    Gängigste Lösung: Im onMouseout ein window.setTimeout("Out()",1000);
    und erst in Out() den Layer ausblenden. Im Navigationsmenü musst du dann natürlich einen clearTimeout() aufrufen.

    HTH

    Maxx

    1. Tja, mit genau diesem Problem kämpft wohl jedes dynamische Menü.
      Gängigste Lösung: Im onMouseout ein window.setTimeout("Out()",1000);
      und erst in Out() den Layer ausblenden. Im Navigationsmenü musst du dann natürlich einen clearTimeout() aufrufen.

      HTH

      Maxx

      hallo maxx,
      was bewirkt denn dieser window.settimeout und wie lautet der code zwischen ()?

      gruss
      holger

      1. Hi,

        Gängigste Lösung: Im onMouseout ein window.setTimeout("Out()",1000);
        und erst in Out() den Layer ausblenden. Im Navigationsmenü musst du dann natürlich einen clearTimeout() aufrufen.

        was bewirkt denn dieser window.settimeout und wie lautet der code zwischen ()?

        Du bist dir über die Bedeutung des Zusatzes "SELF" im Klaren?
        window.setTimeout("Out()",1000); ruft die Funktion "Out()" (die du natürlich irgendwo implementieren musst) nach 1000 Millisekunden auf. Wenn du in "Out()" genau das machst was du sonst im "onMouseout()" machen würdest hast du eine Verzögerung von 1 Sekunde. Soweit alles Klar? Oder anders ausgedrückt: dir bleibt etwas Zeit um einen Link in deinem Navigationsmenü anzusteuern. Damit nun aber das Menü nach Ablauf der Sekunde nicht ungewollt wieder verschwindet musst du im onMouseover() die gesetzte Verzögerung wieder löschen.  clearTimeout(). Kannst du mir noch folgen? OK, wenn du nun dein Navigationsmenü verlässt rufst du direkt im onmouseout() den Out() auf. Damit sollten nun sämtliche Reste des Menüs wieder ausgeblendet sein.

        und wie lautet der code zwischen ()?

        Das sollte jetzt eigentlich kein Problem mehr sein.

        ffbx

        Maxx