Rambomaster
Mitglied
Hallo Zusammen
Ich habe vor ein paar Tagen angefangen eine Javascript Klasse zu schreiben. Schlussendlich soll man damit Div Popups generieren lassen können. Nun habe ich aber folgendes Problem:
Das Popup soll sich immer in der Mitte des Browsers ausrichten und auch in der Mitte bleiben wenn die Fenstergrösse verändert wird.
Ich habe also eine Methode "alignDivPopup()" welche das Popup in der Mitte ausrichtet. Diese Methode wird einmal kurz nach dem erstellen des Div Popups aufgerufen und sollte auch jedes mal aufgerufen werden wenn die Fenstergrösse geändert wird. In dieser Methode sollen die Masse des Popups über eine Objektvariable ausgelesen werden.
Beim ersten Aufruf kurz nach dem Erstellen funktioniert das ganze ohne Probleme und das Div Popup wird schön in der Mitte ausgerichtet, aber beim Aufruf über window.onresize werden diese Objektvariablen nicht mehr gefunden.
Hier sind die wichtigsten Funktionen:
Ich bin für jeden Hinweis dankbar.
Gruss
Rambomaster
Ich habe vor ein paar Tagen angefangen eine Javascript Klasse zu schreiben. Schlussendlich soll man damit Div Popups generieren lassen können. Nun habe ich aber folgendes Problem:
Das Popup soll sich immer in der Mitte des Browsers ausrichten und auch in der Mitte bleiben wenn die Fenstergrösse verändert wird.
Ich habe also eine Methode "alignDivPopup()" welche das Popup in der Mitte ausrichtet. Diese Methode wird einmal kurz nach dem erstellen des Div Popups aufgerufen und sollte auch jedes mal aufgerufen werden wenn die Fenstergrösse geändert wird. In dieser Methode sollen die Masse des Popups über eine Objektvariable ausgelesen werden.
Beim ersten Aufruf kurz nach dem Erstellen funktioniert das ganze ohne Probleme und das Div Popup wird schön in der Mitte ausgerichtet, aber beim Aufruf über window.onresize werden diese Objektvariablen nicht mehr gefunden.
Hier sind die wichtigsten Funktionen:
Code:
function DivPopup(pClassName, pDivPopupWidth, pDivPopupHeight) {
this.divPopup = null;
this.divPopupClassName = pClassName;
this.divPopupWidth = pDivPopupWidth;
this.divPopupHeight = pDivPopupHeight;
this.init();
window.onresize = this.alignDivPopup;
}
DivPopup.prototype.init = function() {
popupCount++;
this.popupId = popupCount;
this.divPopup = document.createElement("div");
this.divPopup.id = "popup-" + this.popupId;
this.divPopup.className = "load";
this.divPopup.style.display = "block";
this.divPopup.style.width = this.divPopupWidth;
this.divPopup.style.height = this.divPopupHeight;
document.body.insertBefore(this.divPopup, document.body.firstChild);
this.alignDivPopup();
this.closePopup();
}
DivPopup.prototype.alignDivPopup = function() {
var halfWindowWidth = Math.round(windowWidth/2);
var halfWindowHeight = Math.round(windowHeight/2);
var halfPopupWidth = Math.round(this.divPopup.clientWidth/2);
var halfPopupHeight = Math.round(this.divPopup.clientHeight/2);
var alignLeft = halfWindowWidth - halfPopupWidth;
var alignTop = halfWindowHeight - halfPopupHeight;
this.divPopup.style.left = alignLeft + "px";
this.divPopup.style.top = alignTop + "px";
}
Ich bin für jeden Hinweis dankbar.
Gruss
Rambomaster