john1967: Button gedrückt bleiben lassen bis man wieder übers Menu fährt

Hallo

Ich versuche gerade ein erstes Javascript-Menu zu machen.

Soweit bin ich gekommen:

www.theater-buenzen.ch.vu

Nun möchte ich aber, dass die Knöfpe der aktuell angezeigten Seite immer unten gedrückt bleiben und erst wieder in den Normalzustand gehen, wenn ich mit der Maus wieder irgendwo ins Menu rüberfahre...!

Wie mach ich das?

In einem anderen Forum las ich von einer for-Schleifen-Methode... habe aber nocht nicht genug Ahnung davon und verstehe nicht, wie ich die Anleitung von euch für mein aktuelles Beispiel verstehen soll.

Vielen Dank für eure rasche Hilfe!

  1. Wie ich gesehen habe arbeitest Du mit Frames. Ein möglicher Lösungsweg für dein Problem ist folgender:

    Beim onclick-Ereignis wird das Aussehen eines Elementes entsprechend geändert und im anderen Frame die richtige Seite geladen. Im Navigationsframe kannst Du dir dabei mittels window.ActiveButton=... die aktive Schaltfläche merken und in einem folgenden onmouseover oder onclick Ereignis in eine andere Schaltfläche den Zustand zurücksetzen. (ActiveButton ist dann ein durch Zuweisung erzeugtes Attribut). Dies nutzt aus, dass durch die Frames die Navigationsleiste nicht erneut geladen wird.

    Allerdings ergeben sich da einige Synchronisationsprobleme, wenn der Zustand der Schaltfächen stets die dargestellte Seite wiedergeben soll, also anzeigt, was man grade sieht. Der Benutzer kann ja seinen "zurück" oder "vorwärts" Knopf im Browser drücken, wodurch ohne eine Interaktion mit der Navigationsleiste der Inhalt des Hauptframes geändert wird. Ergo => Navigationsleiste und Seiteninhalt sind nicht mehr synchron.

    Lösung dafür ist, die Navigationsleiste aus dem onload Event einer Seite richtig zu setzen. Dann kann man sich auch die ganze Proggerei in der Navigationsleiste sparen, da durch das Laden einer Seite automatisch die Zustände der Schaltflächen via JavaScript gesetzt werden. In der Navigationsleiste mußt Du dann lediglich das onmouseover und onmouseout verarbeiten und natürlich die Seitenauswahl durch window.navigate. Du kannst dann aber auch mit Verknüpfungen arbeiten.

    MfG
    RZ

    PS: Du solltest keine vorgefertigten Bestandteile verwenden, wenn Du diese nicht vollständig verstanden hast. Sonst hast Du kaum eine Chance, Fehler eigenständig zu beheben.

  2. Hallo

    Ich versuche gerade ein erstes Javascript-Menu zu machen.

    Soweit bin ich gekommen:

    www.theater-buenzen.ch.vu

    Nun möchte ich aber, dass die Knöfpe der aktuell angezeigten Seite immer unten gedrückt bleiben und erst wieder in den Normalzustand gehen, wenn ich mit der Maus wieder irgendwo ins Menu rüberfahre...!

    du meinst so http://home.arcor.de/struebig/js/mouse_over/mouse_over.htm

    Struppi.

    1. Vielen herzlichen Dank ihr beiden!

      @Struppi:

      Schau jetzt bitte nochmals hier hin:

      http://www.stud.alte-kanti-aarau.ch/~honha00ad/tgb2/index2.html

      Kann ich irgendwie machen, dass der Home-Knopf am Anfang schon aktiviert ist? Sonst ist es jetzt genau, das was ich wollte, danke!

      @Gerhard Knabe:

      Auch vielen Dank! Ich musste deinen Text etliche Male lesen, bis ich erst die Logik dahinter begriff. Wie du selber gesehen hast, bin ich in Sachen JS noch ein absoluter Noob, und daher hab ich jetzt lieber Struppis einfache Variante genommen! Bei deiner hät ich noch x-mal nachfragen müssen... :( Auch müsste das ganze möglichst schnell vorankommen!

      Gruss john

      1. Vielen herzlichen Dank ihr beiden!

        @Struppi:

        Schau jetzt bitte nochmals hier hin:

        http://www.stud.alte-kanti-aarau.ch/~honha00ad/tgb2/index2.html

        Kann ich irgendwie machen, dass der Home-Knopf am Anfang schon aktiviert ist? Sonst ist es jetzt genau, das was ich wollte, danke!

        Die Dateien haben noch den falschen Namen.

        Die Grafiken für mousedown müssen:

        button1_down.jpg
        button2_down.jpg
        button3_down.jpg
        ...

        heißen und um eine Grafik die an bleiben soll zu haben must du noch für die Variabel stay einen anderen Wert definieren.

        z.b.

        var stay = '_stay';

        und dann heißen die Grafiken:
        button1_stay.jpg
        button2_stay.jpg
        button3_stay.jpg

        Struppi.

        1. Ich hab die Grafiken absichtlich gleich gennant. Da bei mir stay und down gleich aussehen.

          Jetzt hab ich aber alles auch auf stay wieder umgestellt.

          Das hilft aber noch nicht, das der Home-Knopf am Anfang nicht stay ist... :) Wie krieg ich das hin? oder geht das überhaupt nicht?

          Danke für deine Hilfe!

          1. Ich hab die Grafiken absichtlich gleich gennant. Da bei mir stay und down gleich aussehen.

            Jetzt hab ich aber alles auch auf stay wieder umgestellt.

            Ich dachte du willst einen anderen Knopf wenn der Button gedrückt ist?

            Das hilft aber noch nicht, das der Home-Knopf am Anfang nicht stay ist... :) Wie krieg ich das hin? oder geht das überhaupt nicht?

            doch du must am anfang ein script einfügen:

            window.name ="button0" oder wie der Button heißt.

            Struppi.

            1. Dank dir tausend mal!

              Jetzt wirds super!

              Ich will eben, dass der Knopf gleich aussieht, wenn er runtergedrückt wird und wenn er gedrückt bleibt!

              Colles Script!

              1. Dank dir tausend mal!

                Jetzt wirds super!

                Ich will eben, dass der Knopf gleich aussieht, wenn er runtergedrückt wird und wenn er gedrückt bleibt!

                Jo, das geht.

                du hast ja 4 Möglichkeiten

                normal
                onmouseover = over
                onmousedown = down
                onclick = stay

                Du musst aber nicht alle angeben, wenn du eine Grafik wegläßt führt das Skript den event nicht aus.

                Colles Script!

                Danke.

                Struppi.