holger kuehne: dynamisches Positionieren von Layern

Beitrag lesen

Hi
Ich hab gerade als ich das ganze wegschicken wollte die Loesung von Jens gesehen. Ich werde dir einfach trotzdem diese loesung hier posten. Du kannst dann einfach auswaehlen was dir besser gefaellt....
Ich hab das Problem auch schon mal gehabt, und hab es folgendermassen geloest:
Alle layer schon ganz normal zwischen <body> und </body> definieren und die position left so angeben als ob die Breite kleiner 751 waere. Wenn du willst kannst du noch per visibility:hidden  alle layer unsichtbar machen. Dann wird deine Funktion left() so definiert, dass sie alle layer verschiebt (und eventuell wieder sichtbar macht) falls die Fensterbreite groesser als 751 ist. Diese Funktion wird dann onload im body tag aufgerufen.
So aehnlich muesste das eigentlich funktionieren
function left(){
if (document.layers){
if (window.innerWidth>751) {
for (i=0;i<5;i++)
document.layers[i].left+=(window.innerWidth-750)/2;
}}
else if (document.all) {
if (document.body.clientWidth>751) {
for (i=0;i<5;i++)
document.all.tags("div")[i].style.left=document.all.tags("div")[i].style.left+(document.body.clientWidth-750)/2;
}}
}
Damit das ganze beim Netscape nicht durch einen resize kaputt geht musst du noch die bekannte resize Funktion von gary smith anwenden:
/**
  * resize.js 0.3 970811
  * by gary smith
  * js component for "reloading page onResize"
  */
if(!window.saveInnerWidth)
{ window.onresize = resizeIt;
  window.saveInnerWidth = window.innerWidth;
  window.saveInnerHeight = window.innerHeight; }
function resizeIt()
{ if (saveInnerWidth < window.innerWidth
  saveInnerWidth > window.innerWidth
  saveInnerHeight > window.innerHeight
  saveInnerHeight < window.innerHeight )
{ window.history.go(0); }}
So ich hoffe das die erste Funktion auch so funktioniert wie du dir das denkst. Falls nicht oder falls noch Fragen da sind: einfach nochmal posten.
Tschau Holger