Positionieren im Browserfenster
Norbert Pfeiffer
Ich will/muss ein frei positionierbares Objekt in der Mitte des Browserfensters
anordnen. Unter Netscape geht das problemlos mit
document.layers['JET'].top = (window.innerHeight / 2) - (hoehe / 2);
document.layers['JET'].left = (window.innerWidth / 2) - (breite / 2);
Trotz aufwendiger Suche habe ich jedoch keine Entsprechung fuer den IE 4.0
gefunden.
Frage:
Ueber eine hilfreiche Antwort waere ich sehr erfreut.
M. f. G. Norbert Pfeiffer
Hi,
Ich will/muss ein frei positionierbares Objekt in der Mitte des Browserfensters
anordnen. Unter Netscape geht das problemlos mit
document.layers['JET'].top = (window.innerHeight / 2) - (hoehe / 2);
document.layers['JET'].left = (window.innerWidth / 2) - (breite / 2);
Trotz aufwendiger Suche habe ich jedoch keine Entsprechung fuer den IE 4.0
gefunden.
Frage:
- Ist eine Methode bekannt, wie man die verfuegbare Breite/Hoehe im IE
ermitteln kann?
mit dem MSIE kannst Du mittels
document.all.body.clientWidth bzw. clientHeight
die Breite und Höhe des aktuellen Fensters herausfinden. Du kannst auch ein parent bzw. top davorsetzen, um die Gesamtgröße herauszufinden, allerdings *nur* wenn die entsprechende Datei vom selben Server (Domain) ist wie die prüfende Datei.
Cheatah
Hallo,
Beim IE funktioniert das Ermitteln der Fenstergröße auch mit window.inner....
Allerding kannst du dort die Layer-Geschichte vergessen, da dies nur beim NN funzt. Beim IE mußt du das mit CSS in verbindung mit dem .all und/oder .style Objekten bewerkstelligen. Nachlesen kannst du das alles bei SELFHTML.
Bis danndann
Thomas
Hallo Norbert,
Ich will/muss ein frei positionierbares Objekt in der Mitte des Browserfensters
anordnen. Unter Netscape geht das problemlos mit
Ja, aber Layer sind eben Netscape-proprietaer. Wenn Du fuer beide Brwoser arbeiten willst, musst du die positionierten Objekte gleich in HTML anders definieren, naemlich:
<div id="Bereichsname" style="position:absolute; top:???; left:???; width:???; height:???;">
...
</div>
dann kannst Du im Script notieren:
if(document.layers)
{
document.Bereichsname.[Eigenschaft/Methode Layerobjekt]
}
if(document.all)
{
document.all.Bereichsname.[Eigenschaft/Methode all-Objekt]
}
Relevante Seiten dazu in SELFHTML:
<../../tecbba.htm> (all-Objekt)
<../../tecbbf.htm> (Layerobjekt)
<../../tfba.htm> (Zugriff auf Objekte beim MSIE)
<../../tfbe.htm> (Zugriff auf Objekte bei Netscape)
<../../tfca.htm> (Cross-Browser-Beispiel)
viele Gruesse
Stefan Muenz
Hallo Stefan,
das mit den Objekten war nicht mein Problem.
Die tauchen auf und verschwinden, wo, wann und wie ich es will ... ;-)
'Cheatah' sei Dank, nun auch in der Mitte des Browserfensters ...
Fuer NS:
document.layers['JET'].top = window.innerHeight / 2;
document.layers['JET'].left = window.innerWidth / 2;
Fuer IE:
document.all['JET'].style.pixelTop = document.body.clientHeight / 2;
document.all['JET'].style.pixelLeft = document.body.clientWidth / 2;
Das Objekt wurde so definiert:
<!-- ----------------------------------------- Start Objekt -->
<DIV ID='JET' style='POSITION:absolute; VISIBILITY:hidden; TOP:0px; LEFT:0px; WIDTH:37px; HEIGHT:19px;'>
<img src='_img/my-jet.gif' width=37 height=19 border=0>
</div>
<!-- ----------------------------------------- Ende Objekt -->
Natuerlich muss man es dann noch an der gefundenen Position auftauchen lassen:
Fuer NS:
document.layers['JET'].visibility = "show";
Fuer IE:
document.all['JET'].style.visibility = "visible";
Gruss Norbert