tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1034
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Rambomaster Rambomaster ist offline Mitglied Silber
    Registriert seit
    Feb 2007
    Beiträge
    74
    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:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
    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
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Hast du schonmal überlegt, da ganz ohne JS heranzugehen(beim Positionieren).... sowas lässt sich bestimmt auch per CSS machen
     

Ähnliche Themen

  1. Problem beim aufrufen einer Methode
    Von Danilo Geissler im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 26.07.07, 23:41
  2. Antworten: 2
    Letzter Beitrag: 06.06.07, 18:37
  3. Antworten: 2
    Letzter Beitrag: 16.01.07, 23:33
  4. Bean Methode beim Aufruf starten
    Von hispeedsurfer im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 23.11.06, 08:13
  5. Antworten: 3
    Letzter Beitrag: 29.01.05, 17:55