Hallo, habe mir schon überall die Finger wund gesucht zu diesem Thema:
Ich möchte mittels Layer einen MouseOver Effekt erzeugen, d.h. ich fahre über einen Button und an einer anderen Stelle öffnet sich dann ein Layer, der eine Grafik beinhaltet.
Das ist der HTML-Code für den Layer:
<div id="Layer1" style="position:absolute; left:645px; top:54px; width:41px; height:49px; z-index:1; visibility: hidden"><img src="palme.gif" width="60" height="55"></div>
So lautet der Aufruf bei mouseOver:
<a href="test.htm" target="mainFrame" onMouseOver="MM_showHideLayers('Layer1','','show', 'visible')" onMouseOut="MM_showHideLayers('Layer1','','hide')">test</a>
Dazu gibt's dann u.a. auch ein kleines JavaScript:
<script language="JavaScript">
<!--
function MM_popupMsg(msg) { //v1.0
alert(msg);
}
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>
Soweit so gut, funktioniert alles einwandfrei...ABER: Eben auch nur im Internet Explorer. Habe das ganze sowohl mit Netscape, als auch mit Mozilla getestet. Dort kann ich zwar den Link anklicken, aber die dazugehörigen Layer werden nicht angezeigt.
Mittlerweile habe ich schon rausgefunden, dass es anscheinend ohne weiteres bei Netscape nicht möglich ist, aber ich denke, dass das doch irgendwie zu realisieren sein muss. Ich bin für jeden Tipp dankbar.
Gruß whykiki