Marcus: OnMouseover soll gehighlighted bleiben

Unsere Studis wollen eine Webseite mit Frames erstellen (so weit so schlecht).
Auf der linken Seite befindet sich sich die Menü/Navigationsleiste
und auf der rechten Seite (na klar, wie sonst) der anzuzeigende
Inhalt. Nun soll beim Überfahren mit der Maus der jeweilige Eintrag
gehighlighted werden (blöde Eindeutschung, sorry), was mit
"OnMouseover" ja kein Problem darstellt. Doch nun kommts: Der
angeklickte Link soll die Highlight-Farbe (notfalls auch eine andere)
behalten, aber es soll nicht unbedingt der linke Frame neu geladen
werden und die Highlight-Funktion muß weiterhin funktionieren....
Ich habe erfolgslos mit "Onclick" und weiteren Event-Handlern
herumexperimentiert und mich auch auf anderen Seiten
umgeschaut. Bis jetzt leider Fehlanzeige...
Es würde mir sehr helfen, wenn jemand einen Tip oder Link für mich
hätte. Ist das was ich mir vorstelle überhaupt machbar?

Liebe Grüße
Marcus

  1. Hi,

    Unsere Studis wollen eine Webseite mit Frames erstellen (so weit so schlecht).
    Auf der linken Seite befindet sich sich die Menü/Navigationsleiste
    und auf der rechten Seite (na klar, wie sonst) der anzuzeigende
    Inhalt. Nun soll beim Überfahren mit der Maus der jeweilige Eintrag
    gehighlighted werden (blöde Eindeutschung, sorry), was mit
    "OnMouseover" ja kein Problem darstellt. Doch nun kommts: Der
    angeklickte Link soll die Highlight-Farbe (notfalls auch eine andere)
    behalten, aber es soll nicht unbedingt der linke Frame neu geladen
    werden und die Highlight-Funktion muß weiterhin funktionieren....
    Ich habe erfolgslos mit "Onclick" und weiteren Event-Handlern
    herumexperimentiert und mich auch auf anderen Seiten
    umgeschaut. Bis jetzt leider Fehlanzeige...

    das Problem liegt hier wohl beim onMouseOut, mit dem der Highlight-Modus wieder deaktiviert wird. In dem Fall, daß der Button angeklickt wird (onClick) muß dem Script also gesagt werden, daß onMouseOut nicht mehr gilt. Wie macht man das? Man setzt sich eine Variable, die den aktuell angeklickten Button beinhaltet (am Anfang z.B. den Wert -1). onMouseOut prüft man jetzt, ob diese Variable den aktuellen Button enthält und tut in dem Fall halt gar nichts.

    Hinweise:

    • onClick zunächst prüfen, welcher Button bisher angeklickt war, für diesen das onMouseOut wieder durchführen.
    • onClick auch ruhig noch mal für den neuen Button das onMouseOver ausführen, da evtl. (bei hoher Mausgeschwindigkeit) schon das onMouseOut gegriffen hat.

    Abgesehen von onMouseOver/Out mache ich übrigens das gleiche noch etwas komplexer auf http://cheatah.net/test/. Dort speichere ich auf den einzelnen Seiten und Untermenus, welcher Button nun angeklickt werden soll und führe die entsprechenden Funktionen frameübergreifend aus. Das ist ein wenig kompliziert, dafür funktioniert aber auch die Navigation mit Back- und Forward-Button des Browsers. Leider funktionieren nur die wenigsten Menupunkte, aber die erste Spalte sollte für den Anfang genügen ;-)

    Cheatah

  2. Inhalt. Nun soll beim Überfahren mit der Maus der jeweilige Eintrag
    gehighlighted werden (blöde Eindeutschung, sorry), was mit
    "OnMouseover" ja kein Problem darstellt. Doch nun kommts: Der
    angeklickte Link soll die Highlight-Farbe (notfalls auch eine andere)

    Schaue mal ins Archiv

    <../../sfarchiv/1999_2/t03663.htm#a17636>

    und wenn du im Kopf jeder Seite noch einen Funktionaufruf einbaust funktioniert es sogar mit dem vor und zurückbutton.

    Antje

  3. Unsere Studis wollen eine Webseite mit Frames erstellen (so weit so schlecht).
    Auf der linken Seite befindet sich sich die Menü/Navigationsleiste
    und auf der rechten Seite (na klar, wie sonst) der anzuzeigende
    Inhalt. Nun soll beim Überfahren mit der Maus der jeweilige Eintrag
    gehighlighted werden (blöde Eindeutschung, sorry), was mit
    "OnMouseover" ja kein Problem darstellt. Doch nun kommts: Der
    angeklickte Link soll die Highlight-Farbe (notfalls auch eine andere)
    behalten, aber es soll nicht unbedingt der linke Frame neu geladen
    werden und die Highlight-Funktion muß weiterhin funktionieren....
    Ich habe erfolgslos mit "Onclick" und weiteren Event-Handlern
    herumexperimentiert und mich auch auf anderen Seiten
    umgeschaut. Bis jetzt leider Fehlanzeige...
    Es würde mir sehr helfen, wenn jemand einen Tip oder Link für mich
    hätte. Ist das was ich mir vorstelle überhaupt machbar?

    Liebe Grüße
    Marcus

    Hi!
    Das Ganze sollte eigentlich gar kein Problem sein.

    *************************************
    pic1_normal = new Image();
    pic1_normal.src = "blau.gif";
    pic1_highlight = new Image();
    pic1_highlight.src = "rot.gif";
    *************************************
    Mit diesem Block werden 2 Objekte erstellt und die entsprechenden Resourssen geladen.

    Nun kannst du mit OnMouseover, bzw OnMouseout arbeiten

    *************************************
    <img src="blau.gif" name="pic1" onMouseOver="setPicture('pic1', pic1_highlight);">
    *************************************
    Die aufgerufene Funktion setPicture lautet wie folgt:

    *************************************
    function setPicture(img, imgobject) {
            document.images[img].src=imgobject.src;
    }
    *************************************

    Dein Chris
    cploning@rainbow.studorg.tuwien.ac.at