Layer ein/-ausblenden im IE 5 UND Netscape 6
Joern
- dhtml
0 bob0 Hobbes0 Utz Grimminger0 Jens Menke0 Joern
Hallo,
ich möchte mittels Mausklick einen Layer ein-/ bzw. ausbelnden lassen.
Im IE4/5 und NS 4 kein Problem:
function show(name) {if (ns)
{document.layers['' + name].visibility = "visible";}
else
{document.all['' + name].style.visibility = "visible";}
}
function hide(name) {if (ns)
{document.layers['' + name].visibility = "hidden";}
else
{document.all['' + name].style.visibility = "hidden";}
}
Ich möchte aber, dass auch der NETSCAPE 6 das macht.
Mit folgendem Script funktionierts aber auch nur leider im IE5:
function layerwechsel(welchesdiv){
if (Layer1.style.display=="none")
Layer1.style.display=""
else
Layer1.style.display="none";
}
Also wie kann ich einen Layer per Mausklick im Netscape 6 ein/-bzw. ausbelnden lassen???
Vielen Dank schon mal jetzt
Joern
Hallo,
funktioniert deine Browserabfrage bei NS 6 überhaupt oder wird dann der Code für IE ausgeführt ???
Probier mal mit der Abfrage NS - if (document.layer)
Mfg. Bob
Hallo,
ich möchte mittels Mausklick einen Layer ein-/ bzw. ausbelnden lassen.
Im IE4/5 und NS 4 kein Problem:function show(name) {if (ns)
{document.layers['' + name].visibility = "visible";}
else
{document.all['' + name].style.visibility = "visible";}
}
function hide(name) {if (ns)
{document.layers['' + name].visibility = "hidden";}
else
{document.all['' + name].style.visibility = "hidden";}
}Ich möchte aber, dass auch der NETSCAPE 6 das macht.
Mit folgendem Script funktionierts aber auch nur leider im IE5:function layerwechsel(welchesdiv){
if (Layer1.style.display=="none")
Layer1.style.display=""
else
Layer1.style.display="none";
}Also wie kann ich einen Layer per Mausklick im Netscape 6 ein/-bzw. ausbelnden lassen???
Vielen Dank schon mal jetzt
Joern
Hallo,
funktioniert deine Browserabfrage bei NS 6 überhaupt oder wird dann der Code für IE ausgeführt ???
Probier mal mit der Abfrage NS - if (document.layer)
Meine Browserabfrage funktioniert.
Ich glaube auch, dass eher meine zweite möglichkeit (dom) eher in die richtige richtung geht, oder?
Joern
Hai,
habe mich mit dem Thema NS 6 noch nicht so beschäftigt, kann aber nicht glauben, das NS auf einmal keine Layer unterstützt. Probiers doch mal mit der gleichen Syntax wie bei IE 5 document.all.
Fällt mir sonst nichts dazu ein.
Ciao, Bob
Hallo,
funktioniert deine Browserabfrage bei NS 6 überhaupt oder wird dann der Code für IE ausgeführt ???
Probier mal mit der Abfrage NS - if (document.layer)Meine Browserabfrage funktioniert.
Ich glaube auch, dass eher meine zweite möglichkeit (dom) eher in die richtige richtung geht, oder?Joern
Muß mich korrigieren. Es gibt keine Layers mehr, aber Div's.
Siehe Beitrag unten.
Hai,
habe mich mit dem Thema NS 6 noch nicht so beschäftigt, kann aber nicht glauben, das NS auf einmal keine Layer unterstützt. Probiers doch mal mit der gleichen Syntax wie bei IE 5 document.all.
Fällt mir sonst nichts dazu ein.Ciao, Bob
Hallo,
funktioniert deine Browserabfrage bei NS 6 überhaupt oder wird dann der Code für IE ausgeführt ???
Probier mal mit der Abfrage NS - if (document.layer)Meine Browserabfrage funktioniert.
Ich glaube auch, dass eher meine zweite möglichkeit (dom) eher in die richtige richtung geht, oder?Joern
also für ns6 nimmst Du absolut positionierte divs mit id
und dann:
function layerwechsel(welchesdiv)
{
if (document.getEelementById("Layer1").style.display=="none")
{document.getEelementById("Layer1").style.style.display="inline";}
else
document.getEelementById("Layer1").style.display="none";
}
oder statt display das gute alte visibility nehmen. Kommt drauf an welchen Effekt Du erzielen willst.
Mit display kann man bei relativ positionierten divs, die folgenden divs mitrutschen lassen, abhängig
davon ob der div da ist oder nicht
lg Hobbes
<img src="http://server.datenwerk.at/~til/img/hobbes.gif" alt="">
Hi Joern,
beim dynamischen Ändern der Display-Eigenschaft hat die NS6-Preview(!) einen Bug - Fazit: jetzt keine Sorgen machen, aufs Produkt warten und dann nochmal loslegen.
Grüße,
Utz
Hi
versuchs mal in etwa so :
var NS = (document.layers) ? 1:0;
var IE = (document.all) ? 1:0;
var DOM = (document.getElementById) ? 1:0;
function getObj(name) {
if (IE && document.all[name]) {return document.all[name].style;}
if (DOM && document.getElementById(eval("'"+name+"'"))) {return document.getElementById(name).style}
if (NS && document.layers[name]) {return document.layers[name];}
return 0;
}
Layer einblenden :
getObj(layerName).visibility="visible";
Layer ausblenden :
getObj(layerName).visibility="hidden";
gruss
Jens
Danke Jens, jetzt funktioniert's auch im Netscape 6
Gruss
Joern