Susi: Imagemap und Mouseover bei direkt angrenzenden Bildern

Hallo,
ich habe folgendes Problem. Beim implementieren einer Landkarte (Deutschland) soll bei Auswahl eines Bundeslandes, das selbige in einer anderen Farbe aufleuchten. Ich hatte das anfangs gut über imagemaps und via mouseover gelöst. dabei ergibt sich aber folgendes Problem: bei direkt angrenzenden Bundesländern kann man die Bilder ja nicht einfach austauschen (Bilder sind ja zerschnitten und rechteckig; man kann ja z.B. Bayern nicht ausschneiden ohne nicht ein Stück von Baden-Würtemberg mit zu erwischen...)
Wie könnte ich dieses Problem mit Javascript und html lösen?
Oder brauch man für sowas zwingend flash? und wenn ja, ist das schwer mit flash zu verwirklichen?
Ich hofe, ich habe mein Problem verständlich genug beschrieben ;-)
Danke schon jetzt für Hilfe

liebe grüße, susi

  1. Hi,

    ich würde das vermutlich ohne imagemap und auch ohne Javascript sondern nur mit CSS lösen. Zwar etwas Aufwand, aber funktioniert ohne Techniken, die deaktiviert oder nicht installiert sein können.

    Das Prinzip:

    • ein DIV in der Größe der Karte und diese als Hintergrund eingebunden.
    • die einzelnen Länder ausgeschnitten und gehighlighted (mit den Resten der angrenzenden Länder in Normaldarstellung) vorbereiten.
    • Links mit IDs versehen, die mit display:block, passenden Angaben zu width und height und absolut positioniert werden; ohne Inhalt aber mit title-Attribut.
    • Dann den Hover realisieren z.B. über #id:hover {background:url(nrw.gif;)}

    freundliche Grüße
    Ingo

    1. Hi Ingo,
      vielen Dank für deinen Tip. Werd´s mal mit CSS probieren. Wußte bis jetzt noch gar nicht, daß man damit auch einen mouseover-effekt erzeugen kann.
      schönen tag noch!

      1. Hi,

        vielen Dank für deinen Tip. Werd´s mal mit CSS probieren. Wußte bis jetzt noch gar nicht, daß man damit auch einen mouseover-effekt erzeugen kann.

        bitte; ich hoffe es gelingt Dir. Aber Du kannstest a:hover wirklich noch nicht?

        freundliche Grüße
        Ingo

  2. Hallo Susi,

    Ich weiß nicht, ob Ingo nicht streckenweise dasselbe meint wie ich, habe ihn vielleicht nicht ganz verstanden. Du solltest für die HTML-Version jedes Bundesland als teiltransparentes Gif in einer gehighlighteten Version aufbereiten. Alle angrenzenden Bundesländer in dem Rechteck wären in transparenten Pixeln, also unsichtbar. Dann baust du das Puzzle mit absoluter Positionierung wieder zusammen. Jedes Gif kommt dabei in ein Div das aber zunächst auf visibility:hidden geschaltet ist. Als ersten Layer unten drunter legst du deine komplette Landkarte von Deutschland auch passgenau und als oberste Schicht darüber legst du einen Steuer-Layer, der ein Bild mit einem blinden Pixel enthält, das du auf die Maße der deutschlandkarte aufblähst und dem du die Imagemap zuweist.

    Bei Klick auf eine der Bundesländer-Areas wird bewirkt, dass das entsprechende teiltransparente Highlight-Gif in seinem Div auf visible geschaltet wird, alle anderen, aber auf hidden. Das kannst du ja mit einer For-Schleife machen, in dem du die Divs über ein entsprechendes Array ansprichst.

    Mit Flash wird das ganze auch kaum weniger Aufwand sein, da brauchst du halt entsprechende Bundesländer Schaltflächen, die nur im Gedrückt- und Aktiv-Frame in ihren Konturen passgenau abgebildet werden müssen. Die beiden anderen Frames "Up" und "Gedrückt" füllst du mit leeren Schlüsselbildern. Bei Darüber und Aktiv kannst du die Form aber einfach kopieren, während du bei der HTML-Variante die teiltransparenten Gifs und die Umrisse des Image-Map-Polygons separat frickeln musst.

    Ich beneide dich keinesfalls um diese Arbeit, das ist eine arge Puzzelei, ob du es jetzt mit HTML oder Flash machst. Aber Flash hat mit seinen Vektorgrafiken natürlich einen viel geringeren Speicherbedarf als die vielen erforderlichen Gifs der Bundesländer in der HTML-Version. Außerdem kannst du dein Werk hinterher verlustfrei skalieren

    Gruß Gernot

    1. Hi,

      Ich weiß nicht, ob Ingo nicht streckenweise dasselbe meint wie ich

      nicht ganz, aber teilweise schon.

      jedes Bundesland als teiltransparentes Gif in einer gehighlighteten Version aufbereiten.

      was natürlich eine Beschränkung auf 256 Farben hat. Bei mehr Farben müßte man halt auf die Transparenz verzichten und die normale Ansicht der angrenzenden Gebiete einbauen.

      Als ersten Layer unten drunter legst du deine komplette Landkarte von Deutschland

      Ich dachte an ein einfaches Hintergrundbild der gesamten Karte für ein div#Landkarte.

      auch passgenau und als oberste Schicht darüber legst du einen Steuer-Layer, der ein Bild mit einem blinden Pixel enthält, das du auf die Maße der deutschlandkarte aufblähst und dem du die Imagemap zuweist.

      Das würde bei mir entfallen. Einfach die Links mit display:block und position:absolute in den entsprechenden Größen platzieren und darin die Grafiken mit visibility:hidden.

      Bei Klick auf eine der Bundesländer-Areas wird bewirkt, dass das entsprechende teiltransparente Highlight-Gif in seinem Div auf visible geschaltet wird, alle anderen, aber auf hidden. Das kannst du ja mit einer For-Schleife machen, in dem du die Divs über ein entsprechendes Array ansprichst.

      Das wäre nun Javascript - unschön. Außerdem verstand ich den Anwendungsfall eher als hover-Effekt.
      Mit CSS: einfach #Landkarte a:hover img {visibility:visible;}.

      freundliche Grüße
      Ingo