2010-07-08 11 views
11

¿Cómo alinear una división emergente al centro del monitor/pantalla usando javascript?Cómo centrar la alineación de div emergente usando Javascript

Intenté usar screen.width y screen.height para obtener el centro. Pero la división se alinea con el centro de la página de desplazamiento vertical

Gracias de antemano por cualquier ayuda y sugerencias

+0

probar este http: // goo. gl/ZE21u3 –

Respuesta

20

Pruebe esto:

<div id="popup" class="popup"> 
    This a vertically and horizontally centered popup. 
</div> 

<a onclick="showPopup('popup');">Show Popup</a> 

<style type="text/css"> 
    .popup { 
    width:200px; 
    height:100px; 
    position:absolute; 
    top:50%; 
    left:50%; 
    margin:-50px 0 0 -100px; /* [-(height/2)px 0 0 -(width/2)px] */ 
    display:none; 
    } 
</style> 

<script type="text/javascript"> 
    function showPopup(id) { 
    var popup = document.getElementById(id); 
    popup.style.display = 'block'; 
    } 
</script> 

CSS explicado: El div es 200x100, lo coloca al 50% desde la parte superior y al 50% desde la izquierda, pero para centrarlo completamente, necesita restar de ese 50% la mitad del ancho y de altura, la forma de hacerlo es usar márgenes negativos, por lo tanto, el margen superior debe ser el valor negativo de la altura/2 y el margen izquierdo debe ser el valor negativo del ancho/2.

0

intento:

function msgBox(message) 
{ 
    var msgbox = document.getElementById("msgbox"); 
    msgbox.innerHTML = message; 
    var x = (window.innerWidth/2) - (msgbox.offsetWidth/2); 
    var y = (window.offsetHeight/2) - (msgbox.offsetHeight/2);    
    msgbox.style.top = y; 
    msgbox.style.left = x; 
    msgbox.style.display = "block"; 
} 
+0

hola no viene en el centro .. puede ser un poco de mod podría ayudar .. pero no conseguirlo – Parag

+0

El código de dos líneas anteriores debería ser como a continuación: var x = (window.innerWidth/2) - (msgbox .offsetWidth/2) + "px"; var y = (window.offsetHeight/2) - (msgbox.offsetHeight/2) + "px"; Aquí faltaba el pixel "px". –

2

¿Qué tal hacer con CSS:

<div class="div">Some Content......</div> 

.div { 
    margin-left: auto; 
    margin-right: auto; 
} 
+0

es un cuadro modal un poco div y he utilizado las propiedades screen.height y screen.width de javascript para obtener el cuadro al centro. Pero la caja llega al centro vertical de la página de desplazamiento y no al centro del área visible – Parag

0

Try-posicionamiento fijo:

#box { 
    position: fixed; 
    width: 40%; 
    margin: 200px 30%; 
} 

Es sólo horizontalmente centrado. Vertical tomará un poco jugando con. No tengo idea de cómo los navegadores actúan de manera diferente con la alineación vertical.

0

También tuve este problema de centrado vertical en cualquier página web que requiera desplazamiento.

conmutación a la posición: fijo resueltos, así:

position:fixed; 
top:50%; 
left:50%; 
margin:-50px 0 0 -100px; /* [-(height/2)px 0 0 -(width/2)px] */ 

Esto funcionó en Firefox, Google Chrome, Safari (PC) e IE9.

Por desgracia, yo quería que aparece delante de un pdf file - el pop-up hizo aparecer delante usando Firefox, Chrome, pero fuimos atrás en IE9 y Safari ....

Cuestiones relacionadas