Andreas Korthaus: onmouseover Effekt, funktioniert das so in allen Browsern?

Hallo!

Mal ne kurze Frage, sehe immer so komplizierte Scripte für onMouseOver Grafiken, mit new image()...., aber bei mir funkioniert folgendes in IE5 und Mozilla, funktioniert das irgendwo nicht?
nochwas, ich verwende das innerhalb einer <map> in einer <area>:

<area ...
onmouseout="document.Karte.src = 'images/Karte.gif'" onmouseover="document.Karte.src = 'images/Karte_nhsh.gif'"
...>

Viele Grüße
Andreas

  1. Hallo Andreas!
    Bei sogenannten Area-Hoovern brauchst du keine Angst haben. Die funktionieren garantiert immer und überall.

    Gruß

    1. Hi,

      Bei sogenannten Area-Hoovern brauchst du keine Angst haben. Die funktionieren garantiert immer und überall.

      wie kommst Du denn auf diese Idee[1]? Kein (JavaScript-fähiger) Browser, der document.images nicht kennt, wird jenen Code nicht mit einer Fehlermeldung quittieren.

      Die vielen "new Image()" dienen einem Preloading der Grafiken. Der Rest der "komplizierten Codes" ist funktional quasi identisch; lediglich sollte *dringend* die Prüfung "if (document.images)" eingefügt werden.

      Cheatah

      [1] Und auf den Begriff "Area-Hoover"? Hab ich noch nie gehört. Insbesondere frage ich mich, was das mit Luftkissen zu tun hat.

      --
      X-Will-Answer-Email: No
      1. Hi!

        wie kommst Du denn auf diese Idee[1]? Kein (JavaScript-fähiger) Browser, der document.images nicht kennt, wird jenen Code nicht mit einer Fehlermeldung quittieren.

        OK, wer kann as nicht? NN<4.0, IE<3.0, das sind mir genug.

        Die vielen "new Image()" dienen einem Preloading der Grafiken.

        OK.

        Der Rest der "komplizierten Codes" ist funktional quasi identisch;

        Naja, so kompliziert war es nun auch wieder nicht, aber eben komplizierter.
        | lediglich sollte *dringend* die Prüfung "if (document.images)" eingefügt werden.

        Ich habe das jetzt mal so gemacht:
        <script type="text/javascript">
        <!--
         var Karte0 = new Image(); Karte0.src = "images/Karte.gif";
         var Karte1 = new Image(); Karte1.src = "images/Karte_nhsh.gif";
        //-->
        </script>
        <img name="Karte" src="images/Karte.gif" usemap="#Map">
        <map name="Map">
          <area shape="poly" onmouseout="document.Karte.src = Karte0.src" onmouseover="document.Karte.src = Karte1.src" coords="144,70,124" href="#">
        </map>

        Das komische an der Sache, das ganze dauert im IE Skundenbruchteile, im Mozilla(1.2.1)je nachdem mal ein paar wenige, mal ein paar mehr. Die Bilder sind einfache (transparente) Gifs, 5 KB groß.

        Wieso ist der Mozila hier so langsam? Kann man was dagegen machen?

        Grüße
        Andreas

        1. Hi,

          OK, wer kann as nicht? NN<4.0, IE<3.0, das sind mir genug.

          NN<3.0, IE<4.0 ;-)

          Der IE 3 war (AFAIK) der erste Browser, der ein <script language="JavaScript1.1"> durchführte, es aber nicht konnte. Spätestens seit damals sind alle nicht-Core-Methoden und -Objekte abzufragen.

          <script type="text/javascript">
          <!--

          if (document.images) {

          var Karte0 = new Image(); Karte0.src = "images/Karte.gif";
          var Karte1 = new Image(); Karte1.src = "images/Karte_nhsh.gif";

          }

          Andernfalls ist new Image() nicht bekannt und produziert Fehler.

          <area shape="poly" onmouseout="document.Karte.src = Karte0.src" onmouseover="document.Karte.src = Karte1.src" coords="144,70,124" href="#">

          document.Karte ist erst bekannt, wenn document.images bekannt ist. Karte1 ist ebenfalls ein von document.images abhängiges Objekt - und das nicht nur wegen o.g. notwendiger Prüfung.

          Keine einzige Deiner Anweisungen funktioniert, wenn ein Browser document.images nicht kennt. Daher muss die entsprechende Prüfung _überall_ stattfinden.

          Das komische an der Sache, das ganze dauert im IE Skundenbruchteile, im Mozilla(1.2.1)je nachdem mal ein paar wenige, mal ein paar mehr.

          Schau mal nach, ob die Grafiken wirklich gecacht sind.

          Wieso ist der Mozila hier so langsam? Kann man was dagegen machen?

          Nein. Höchstens vom Server ausgehend und bei der Browserkonfiguration endend das Caching der Bilder begünstigen.

          Cheatah

          --
          X-Will-Answer-Email: No