Layer einblenden bzw. ausblenden (frames)
Matthias
- dhtml
hi,
mein problem bestand darin, dass meine seite die nur aus einer datei mit mehreren layern zu groß wurde. die
ladezeiten wurden unerträglich, da alle bilder direkt beim öffnen
der seite geladen wurden. da es anscheinend hierfür keine lösung gibt, habe ich die seite nun mit frames
aufgebaut. nur leider kann ich die layer über das menu, welches sich
ja nun in einem anderen frame befindet als die layer, nicht mehr
ein bzw. ausblenden. kann man dies irgendwie doch ?
Danke im vorraus,
matthias
hallo,
nur leider kann ich die layer über das menu, welches sich
ja nun in einem anderen frame befindet als die layer, nicht mehr
ein bzw. ausblenden. kann man dies irgendwie doch ?
Wahrscheinlich ist das möglich. Aber dazu solltest du eine URL angeben, wo man sich deine Seite mal anschauen und den Quelltext durchsehen kann.
Grüße aus Berlin
Christoph S.
hallo,
nur leider kann ich die layer über das menu, welches sich
ja nun in einem anderen frame befindet als die layer, nicht mehr
ein bzw. ausblenden. kann man dies irgendwie doch ?Wahrscheinlich ist das möglich. Aber dazu solltest du eine URL angeben, wo man sich deine Seite mal anschauen und den Quelltext durchsehen kann.
Grüße aus Berlin
Christoph S.
hier ist der quelltext:
layer auf der rechten seite:
---
<div id="text" style="position:absolute; visibility:visible; left:16%; top:150px; width:55%; height:62%; z-index:2;</div>
<div id="text2" style="position:absolute; visibility:hidden; left:16%; top:150px; width:55%; height:62%; z-index:2;</div>
---
Die Links auf der anderen seite funktionieren folgendermaßen:
---
function Layer_zeigen(name)
{
Layer_ausblenden('text','text2','3','4','5','6','7');
document.all[name].style.visibility="visible";
}
function Layer_ausblenden(name,name2,name3,name4,name5,name6,name7)
{
document.all[name].style.visibility="hidden";
document.all[name2].style.visibility="hidden";
document.all[name3].style.visibility="hidden";
document.all[name4].style.visibility="hidden";
document.all[name5].style.visibility="hidden";
document.all[name6].style.visibility="hidden";
document.all[name7].style.visibility="hidden";
}
---
dies ist ein beispiel für einen link:
<a href="javaScript:Layer_zeigen('text2')">text2</a>
hallo nochmals,
hier ist der quelltext
Gut. Und in dem ganzen Quelltext ist es auch nur eine sowieso schon problematische Anweisung.
document.all[name].style.visibility="visible";
Dir ist klar, daß du damit mit Ausnahme des Internet Explorer alle Browser von der Anzeige deiner Layer ausschließt? Niemand kann irgendetwas sehen, wenn er nicht grade IE benutzt.
Ersetze das "document.all" also zuerst durch "getElementById()" ("getElementsByName()" wäre auch möglich).
Dein "Frameproblem" löst du dadurch, daß du ganz einfach
top.framename.getElementsById(id).style ...
schreibst.
Mit ein bißchen Nachlesen im Archiv, wie ganz oben empfohlen, hättest du das leicht selbst herausfinden können.
dies ist ein beispiel für einen link:
<a href="javaScript:Layer_zeigen('text2')">text2</a>
Das darfst du auch noch einmal überdenken. Warum das so nicht gut ist, ist ebenfalls in einer großen Zahl von Archivthreads nachlesbar.
Grüße aus Berlin
Christoph S.
Hallo Matthias,
leider kann ich die layer über das menu, welches sich
ja nun in einem anderen frame befindet als die layer, nicht mehr
ein bzw. ausblenden. kann man dies irgendwie doch ?
schau dir das mal an:
http://www.webreference.com/dhtml/dynomat/hiermenus3/
freundl. grüsse aus berlin, Raik