holger kuehne: Layer dyn an und aus

Beitrag lesen

Hi

Ich habe eine HP mit 1 - 10 Layern auf den einzelnen Seiten.
Gibt es eine Möglichkeit mit einer JS-Funktion alle vorhandenen Layer auszuschalten und dann ein einzelnes wieder anzuschalten?

Ja gibt es

Bzw. Gibt es eine Möglichkeit zu überprüfen wieviele Layer in einem HTML-document vorhanden sind, und diese dann alle auszuschalten??

siehe oben!
Ich denke mal, daß du mit an- bzw ausschalten sichtbar bzw. unsichtbar meinst.
Das funktioniert aber nur mit Netscape 4.* bzw IE 4.*/5.*!!
Ausserdem mußt du je nach Browser unterschiedlichen Javascriptcode verwenden
Hier das Script:

<html>
<head>
<script language="JavaScript">
<!--
function sichtbar(j){
if (document.all){/* Testet ob der IE verwendeet wird */
for(i=0;i<document.all.div.length;i++) /*document.all.div.length: Anzahl der layer im IE */
   document.all.tags("div")[i].style.visibility = "hidden"; /*alle Layer unsichtbar machen*/
   document.all.tags("div")[j].style.visibility="visible";}/*layer j sichtbar machen */
else if (document.layers){/* Wenn Netscape verwendet wird */
for(i=0;i<document.layers.length;i++) /*document.layers.length Anzahl der layer in Netscape */
document.layers[i].visibility="hide";/*alle Layer unsichtbar machen*/
document.layers[j].visibility="show";}/*layer j sichtbar machen */
}
//-->
</script>
</head>
<body>
<div id="a"  style="position:absolute; top:1px; left:180px; width:450px; height:300px; visibility:visible;">
layer1
</div>
<div id="b"  style="position:absolute; top:20px; left:180px; width:450px; height:300px; visibility:visible;">
layer2
</div>
<div id="c"  style="position:absolute; top:40px; left:180px; width:450px; height:300px; visibility:visible;">
layer3
</div>
<div id="d"  style="position:absolute; top:60px; left:180px; width:450px; height:300px; visibility:visible;">
layer4
</div>
<div id="e"  style="position:absolute; top:80px; left:180px; width:450px; height:300px; visibility:visible;">
layer5
</div>
<div id="f"  style="position:absolute; top:100px; left:180px; width:450px; height:300px; visibility:visible;">
layer6
</div>
<div id="g"  style="position:absolute; top:120px; left:180px; width:450px; height:300px; visibility:visible;">
layer7
</div>
<div id="h"  style="position:absolute; top:140px; left:180px; width:450px; height:300px; visibility:visible;">
layer8
</div>
<a href="javascript:sichtbar(3)">mache Layer4 sichtbar</a>
</body>
</html>

Mit Netscape habe ichs getestet: funktioniert!
Leider habe ich keinen IE4 zur Verfügung , muesste aber eigentlich funktionieren.
Viel Spas bei testen!
           Holger