Liebe Selfer,
ich versuche eine Art Javascript-Popup in meiner Seite zu realisieren, ohne dass sich ein weiteres Browserfenster öffnet. Dazu wird per Javascript eine in CSS absolut positionierte Tabelle in einen DIV-Bereich geschrieben. Nun soll aber die Tabelle immer in der momentanen Mitte erscheinen, egal wie weit der Anwender bereits gescrollt haben mag.
Leider muss man dazu wohl wieder auf die Unterschiede der DOM-Modelle der Browser Rücksicht nehmen... Mein Script sieht im Moment so aus:
var x_pos = y_pos = "0px";
if(window.innerWidth)
{
x_pos = Math.ceil((innerWidth + window.pageXOffset - 100)/2) + "px";
y_pos = Math.ceil((innerHeight + window.pageYOffset - 80)/2) + "px";
}
else if(document.body.offsetWidth)
{
alert("AHA! IE also...\nX: " + document.body.scrollLeft.value + "px und Y: " + document.body.scrollTop.value + "px.");
x_pos = Math.ceil((document.body.offsetWidth + document.body.scrollLeft - 100)/2) + "px";
y_pos = Math.ceil((document.body.offsetHeight + document.body.scrollTop - 100)/2) + "px";
}
Im Firefox wird die Position korrekt errechnet und es kommt auch kein alert(). Im IE dagegen kommt der alert() und gibt mir _immer_ "0px" für x- und y-offset an, egal wie ich auch scrolle (Seite ist lang genug, um scrollen zu können!). Wo liegt mein Denkfehler, bzw. was habe ich da vielleicht übersehen? Für mich scheint es so, als ob die Eigenschaften scrollLeft und scrollTop nicht auf meine Scrollbewegungen reagieren. Gibt es da vielleicht was Besseres als scrollTop oder scrollLeft?
Vielen Dank für Eure Hilfe!
Liebe Grüße aus Ellwangen,
Felix Riesterer.