Flo: Rollover-Images unter NS und IE

Hallo!

Ich benutze Dreamweaver 2 zur Erstellung meiner Webseiten. Da gibt es auch die schöne Funktion Rollover-Image einfügen. Man gibt dann Anfangs- und Endbild an und Dreamweaver erzeugt den Rollover-Code.

Ich habe nur das Problem damit, dass dies mit dem IE perfekt klappt, der Netscape wechselt die Bilder aber nur, wenn man mit dem Mauszeiger entweder ganz am oberen oder unteren Rand der Bilder entlangfährt.

Hier mal der - von Dreamweaver erzeugte - Code. Ich hoffe auf euch JavaScript-Spezialisten :-)

function MM_swapImgRestore() { //v2.0
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}

function MM_preloadImages() { //v2.0
  if (document.images) {
    var imgFiles = MM_preloadImages.arguments;
    if (document.preloadArray==null) document.preloadArray = new Array();
    var i = document.preloadArray.length;
    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){
      preloadArray[i] = new Image;
      preloadArray[i++].src = imgFiles[j];
  } }
}

function MM_swapImage() { //v2.0
  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
    objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
    if ((objStr.indexOf('document.layers[')==0 && document.layers==null)
        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))
      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = MM_swapImage.arguments[i+2];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}

Die Bilder sind in einer Tabelle abgelegt. Pro Spalte steht der folgende Code:
    <td width="90" height="388" rowspan="6" valign="top"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('document.about','document.about','Bilder/rollovers/abouton.gif','#929359797630');"><img name="about" border="0" src="Bilder/rollovers/aboutoff.gif" width="90" height="388" usemap="#aboutMap"></a></td>

P.S. Ich würde euch ja gerne ne URL mit der Seite geben, aber ich habe z.Zt. noch keinen Plattenplatz bei einem ISP. Das kommt erst, wenn die Seiten fertig sind.

  1. Hi,

    Ich benutze Dreamweaver 2 zur Erstellung meiner Webseiten. Da gibt es auch die schöne Funktion Rollover-Image einfügen. Man gibt dann Anfangs- und Endbild an und Dreamweaver erzeugt den Rollover-Code.

    Ich habe nur das Problem damit, dass dies mit dem IE perfekt klappt, der Netscape wechselt die Bilder aber nur, wenn man mit dem Mauszeiger entweder ganz am oberen oder unteren Rand der Bilder entlangfährt.

    [snip]

    <td width="90" height="388" rowspan="6" valign="top"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('document.about','document.about','Bilder/rollovers/abouton.gif','#929359797630');"><img name="about" border="0" src="Bilder/rollovers/aboutoff.gif" width="90" height="388" usemap="#aboutMap"></a></td>

    das Problem ist hier wohl das usemap="#aboutMap", in dem ich nicht den geringsten Sinn finde. Andererseits halte ich den anderen Code auch für viel zu komplex, also wer bin ich schon, daß ich das beurteile? :-)

    Nimm doch einfach mal das usemap da raus, ich hoffe, daß es dann bereits funktioniert. Und ach ja...

    P.S. Ich würde euch ja gerne ne URL mit der Seite geben, aber ich habe z.Zt. noch keinen Plattenplatz bei einem ISP. Das kommt erst, wenn die Seiten fertig sind.

    ...es gibt haufenweise kostenlose Provider, z.B. http://www.xoom.com, was zumindest für Testzwecke ausreichen sollte ;-)

    Cheatah