Map: aktiven Button markieren
Tom
- programmiertechnik
0 Stefan Einspender0 Tom
Hi Leute,
ich bastele gerade eine Homepage für Bekannte und bin absoluter Anfänger. Da die aber überhaupt keine Ahnung von Computern haben, bleibt die Sache trotzdem an mir hängen. *seufz*
Zum Problem:
Im Navigations-Frame ist eine Map auf einer "verweis-sensitiven Grafik" (SelfHTML-Doku).
Daraus werden nun mittels <area ...> die Buttons hervorgehoben.
Wenn man draufdrückt wird die entsprechende Seite in den Haupt-Frame geladen, soweit funktioniert auch alles wunderbar.
Aber jetzt soll es verbessert werden, so dass immer der gerade gedrückte Button auch als gedrückt markiert ist.
Klingt ja eigentlich einfach.
Aber die vorher gedrückten Buttons müssen ja auch irgendwie wieder zurückgesetzt werden.
Je mehr ich drüber nachdenke, desto mehr merke ich, dass ich überhaupt keinen blassen Schimmer habe, _wie_ das gemacht werden muss.
Leider ist JavaScript nicht viel mehr als ein Wort für mich. Vielleicht braucht man ja auch kein JavaScript dafür, aber mir fällt trotzdem keine Lösung ein.
Ich hoffe, dass mir jemand von euch ein wenig helfen kann.
Danke schon mal im Voraus!
Gruß
Tom
Hallo Tom,
[ein Problem in Zusammenhang mit Frames]
wenn es nicht zwingend notwendig ist, dann verwende doch einfach
keine Frames. Grafiken, die auf jeder Seite wieder vorkommen, liegen
ohnehin im Browsercache und Dein Problem bekommst Du so auch gelöst,
weil es dann nicht mehr existiert.
Ehrlich gesagt bin ich erstaunt, warum gerade soviele Anfänger immer
wieder Frames verwenden, wo es doch deutlich einfacher ist, einzelne
Seiten zu verwenden. Und in den meisten Fällen ist es auch die mit
Abstand bessere Lösung, auf Frames zu verzichten.
Viele Grüße,
Stefan
Hi Stefan,
danke erstmal für die schnelle Reaktion.
[ein Problem in Zusammenhang mit Frames]
wenn es nicht zwingend notwendig ist, dann verwende doch einfach
keine Frames. Grafiken, die auf jeder Seite wieder vorkommen, liegen
ohnehin im Browsercache und Dein Problem bekommst Du so auch gelöst,
weil es dann nicht mehr existiert.
Ich hab auch schon eine Variante ohne Frames getestet, aber das bringt andere Probleme.
1. Browsercache okay, aber man sieht deutlich, dass die Grafik bei jedem Buttonclick neu aufgebaut wird.
Das ist nicht schön.
Kann man das optimieren, programmtechnisch meine ich - die Grafik ist's bereits?
2. Der Background kann dann nicht mehr als Seiten-, sondern er muss als Tabellen-Hintergrundbild definiert werden.
Wenn man dann in dieser weitere Tabellen hat, sind die in Netscape nicht transparent sondern weiß oder farbverschoben.
Das ist noch weniger schön.
Wenn diese beiden Probleme mit vernünftigem Aufwand lösbar wären, könnte ich auf die Frames verzichten.
Ehrlich gesagt bin ich erstaunt, warum gerade soviele Anfänger immer
wieder Frames verwenden, wo es doch deutlich einfacher ist, einzelne
Seiten zu verwenden. Und in den meisten Fällen ist es auch die mit
Abstand bessere Lösung, auf Frames zu verzichten.
Ich weiß auch nicht, warum das so ist. Ich fands irgendwie praktisch und was alles für Probleme dahinter stehen, weiß man ja als Anfänger noch nicht. :-)
Hallo Tom,
- Browsercache okay, aber man sieht deutlich, dass die Grafik bei jedem Buttonclick neu aufgebaut wird.
Das ist nicht schön.
Kann man das optimieren, programmtechnisch meine ich - die Grafik ist's bereits?
war die Grafik bereits auf den anderen Seiten verwendet wurden?
Wenn ja, dann sollte der Browser sie nicht neu laden.
Der URL zu einer Beispielsseite wäre hilfreich.
- Der Background kann dann nicht mehr als Seiten-, sondern er muss als Tabellen-Hintergrundbild definiert werden.
Wenn man dann in dieser weitere Tabellen hat, sind die in Netscape nicht transparent sondern weiß oder farbverschoben.
Das ist noch weniger schön.
Natürlich kann Netscape auch Tabellen mit Hintergrundbildern anzeigen,
eventuell hilft Dir http://selfhtml.org/sfausles/tsfa_tac.htm#a7 da
weiter, der Hinweis gilt allerdings nur für Netscape 4.x, ab Version
6.x sind da keine Probleme zu erwarten.
Oder aber Du entscheidest Dich für eine saubere Lösung und legst das
Hintergrundbild über CSS fest, alle notwendigen Informationen dazu
findest Du in SELFHTML:
http://de.selfhtml.org/css/eigenschaften/hintergrund.htm
Der URL zu einer Beispielseite ist in den meisten Fällen zur Lösung
von Problemen sehr sinnvoll.
Viele Grüße,
Stefan
Bongú!
Zunächst einmal die Antwort auf deine ursprüngliche Frage:
Du brauchst für deine Navigationsbuttons neben dem mouseover- und mouseout- noch einen dritten Zustand, nämlich onclick, der eintriit, wenn auf den Button geklickt wird.
Wie dies beispielsweise umgesetzt wird, steht hier ausführlich beschrieben:
http://www.selfhtml.org/sfausles/tsfa_tcg.htm#a4
Ich hab auch schon eine Variante ohne Frames getestet, aber das bringt andere Probleme.
- Browsercache okay, aber man sieht deutlich, dass die Grafik bei jedem Buttonclick neu aufgebaut wird.
Das ist nicht schön.
Kann man das optimieren, programmtechnisch meine ich - die Grafik ist's bereits?
Es wird ja nicht die Grafik allein neu aufgebaut, sondern die komplette Seite. Daher kann man es auch nicht unterbinden. Man kann maximal dafür sorgen, dass der Browser die Navigationsbuttons schon anzeigen kann, während der Rest der Seite noch geladen wird (indem man z.B. nicht alles in eine übergeordnete Tabelle packt).
Ganz abstellen, kann man diesen zwischenzeitlich weißen Bildschirm aber nicht.
Im Gegensatz zu dir, finde ich das aber gut, da ich so als User genau erkennen kann, dass nach meinem Klick auch wirklich etwas passiert.
Bei einem Frameset sehe ich das manchmal nicht sofort.
- Der Background kann dann nicht mehr als Seiten-, sondern er muss als Tabellen-Hintergrundbild definiert werden.
Wenn man dann in dieser weitere Tabellen hat, sind die in Netscape nicht transparent sondern weiß oder farbverschoben.
Das ist noch weniger schön.
Tabellen müssen es nicht sein. Ein DIV täte es vielleicht auch schon.
Ohne zu wissen, um welche Art Hintergrundbild es geht, kann man nur schwerlich sagen, wie man dieses "Problem" lösen könnte.
Von den Netscape-Problemem ist mir, ehrlich gesagt, nichts bekannt.
Ich weiß auch nicht, warum das so ist. Ich fands irgendwie praktisch und was alles für Probleme dahinter stehen, weiß man ja als Anfänger noch nicht. :-)
Ich sag nur: "Zwei Frames gleichzeitig ändern?". ;-)
Sahha,
kerki