Layer in Fenstermitte positionieren
Reiner M.
- javascript
0 gast42
Hallo ihr fleißigen Helfer!
Ich verbringe hier Stunden über Stunden um meine DIV-Layer so zu positionieren, wie das möchte.
Habe nun schon sehr viel geschafft, aber nun bin ich mit meinem Latein am Ende.
Ich möchte einen Layer in Fenstermitte positionieren. Habe mir dazu folgende Funktion geschrieben:
function openlayer(id)
{
var lay = document.getElementById(id);
var half_lay_width = (parseInt(lay.style.width)) / 2;
var half_lay_height = (parseInt(lay.style.height)) / 2;
var half_doc_width = (window.innerWidth / 2) + window.pageXOffset;
var half_doc_height = (window.innerHeight / 2) + window.pageYOffset;
var lay_pos_x = half_doc_width - half_lay_width;
var lay_pos_y = half_doc_height - half_lay_height;
lay.style.left = lay_pos_x + 'px';
lay.style.top = lay_pos_y + 'px';
lay.style.visibility = 'visible';
}
Der Aufruf erfolgt aus einem Link heraus:
<div id="lay_staat" name="lay_staat" style="background-color:rgb(229,220,161); border-width:1; border-color:black; border-style:solid; width:400px; height:240px; position:absolute; left:0px; top:0px; z-index:2; visibility:hidden;">
/* INHALT */
</div>
<a href="javascript:openlayer('lay_staat');">Staatsangehörigkeit festlegen</a>
Mein Problem ist, dass das zwar im Firefox komplett Problemlos funktioniert, allerdings im IE unter Vista folgende Fehlermeldung erzeugt:
/*
Webseiten-Skriptfehler
Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; FDM)
Zeitstempel: Wed, 18 Feb 2009 01:06:45 UTC
Meldung: Ungültiges Argument.
Zeile: 90
Zeichen: 2
Code: 0
URI: http://www.xxx.de/seite.htm
*/
An der Ausgeworfenen stelle steht aber nur folgendes:
lay.style.left = lay_pos_x + 'px';
// ^^
Könnt Ihr mir weiter helfen?
Gruß Reiner M.
beachte <http://de.selfhtml.org/javascript/objekte/window.htm#inner_height@title=für innerHeight und innerWidth> jeweils den Abschnitt "Beschten Sie"