[DHTML] Layerprobleme

enno75

Grünschnabel
habe ein kleines problem mit dhtml, java etc. ... (quellcode siehe unten)
wenn man einmal auf den link rassen klickst erscheint
der layer ... klickt man ein zweites mal drauf verschwindet
er ... klick der user aber beim zweiten mal statt
auf rassen auf klassen, dann bleibt der erste layer erhalten
und der neue wird einfach drübergesetzt :(

weiss jemand ne lösung wie ich das besser machen kann ???

danke im voraus ...

eNNo

<html>
<body bgcolor="#C9C9C9" text="#ffffff" link="#ff5555" alink="#ff0000" vlink="#999999" onload="init()">
<Center>
<SCRIPT LANGUAGE="JavaScript">

var visibleVar="null";

function init(){

if (navigator.appName == "Netscape") {

layerStyleRef="layer.";

layerRef="document.layers";

styleSwitch="";

visibleVar="show";

}else{

layerStyleRef="layer.style.";

layerRef="document.all";

styleSwitch=".style";

visibleVar="visible";

}

}



function showHideLayerSwitch(layerName){

if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')){

hideLayer(layerName);

}else{

showLayer(layerName);

}

}

function showLayer(layerName){

eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');

}



function hideLayer(layerName){

eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');

}



function showLayer1(layerName){

if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')){

showLayer(layerName);

}

}





function hideLayer1(layerName){

if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')){

hideLayer(layerName);

}

}



</SCRIPT>

<STYLE TYPE="text/css">
#biboButton {position: absolute; z-index: 59800; left: 100px; top: 60px;}
#rassenMenu {position: absolute; z-index: 59900; visibility: hidden; left: 100px; top: 116px;}
#klassenMenu {position: absolute; z-index: 59900; visibility: hidden; left: 100px; top: 116px;}
</STYLE>
<div id="biboButton" >
<p align="left"><font face="Georgia" color="#000000" size="1"><img border="0" src="images/b_kugel_links.gif" width="23" height="10"><a href="javascript:showHideLayerSwitch('rassenMenu');">
RASSEN</a>
<p align="left"><font face="Georgia" color="#000000" size="1"><img border="0" src="images/b_kugel_links.gif" width="23" height="10"><a href="javascript:showHideLayerSwitch('klassenMenu');">
KLASSEN</a>
</div><br>
<div id="rassenMenu" style="position:absolute; width:107px; height:211px; z-index:1; left: 866px; top: 102px">
<table width="110" border="0">
<tr>
<td>
<div align="center"><img border="0" src="images/b_rassen.gif"></div>
</td>
</tr>
<tr>
<td><font face="Georgia" color="#000000" size="1"><img border="0" src="images/b_kugel_links.gif" width="23" height="10">
MENSCHEN<br>
<img border="0" src="images/b_kugel_links.gif" width="23" height="10">&nbsp;DRACHEN
<br>
<img border="0" src="images/b_kugel_links.gif" width="23" height="10">&nbsp;WIKINGER
<br>
<img border="0" src="images/b_kugel_links.gif" width="23" height="10">
DRACHEN </font></td>
</tr>
</table>
</div>
<div id="klassenMenu" style="position:absolute; width:107px; height:211px; z-index:1; left: 866px; top: 102px">
<table width="110" border="0">
<tr>
<td>
<div align="center"><img border="0" src="images/b_klassen.gif"></div>
</td>
</tr>
<tr>
<td><font face="Georgia" color="#000000" size="1"><img border="0" src="images/b_kugel_links.gif" width="23" height="10">
KRIEGER<br>
<img border="0" src="images/b_kugel_links.gif" width="23" height="10">&nbsp;SCHÜTZEN
<br>
<img border="0" src="images/b_kugel_links.gif" width="23" height="10">&nbsp;MAGIER
<br>
<img border="0" src="images/b_kugel_links.gif" width="23" height="10">
SCHMIEDE</font></td>
</tr>
</table>
</div>
</center>
</body>
</html>
 
Du musst in der Funktion, die einen Layer einblendet vorher ne Abfrage machen, ob bereits ein andere Layer "visible" ist, und wenn, dann den eben zuerst ausblenden.

oder einfacher: in der Funktion, die einen Layer einblendet zuerst ALLE Layer ausblenden, und dann den, der eingeblendet werden soll einblenden. So ist auch sichergestellt, daß immer nur ein Layer zur gleichen Zeit sichtbar ist. ;)


Dunsti
 

Neue Beiträge

Zurück