2010-07-08 2 views
11

Как выровнять всплывающее разделение до центра монитора/экрана с помощью javascript?Как центрировать выравнивание всплывающих окон, используя Javascript

Я попытался использовать screen.width и screen.height, чтобы получить центр. Но деление получает выровнены по центру прокрутки страницы по вертикали

Заранее спасибо за любую помощь и предложения

+0

Попробуйте Http: // слизи. gl/ZE21u3 –

ответ

20

Попробуйте следующее:

<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 объяснил: Разница 200x100, вы размещаете его на 50% сверху и 50% слева, но чтобы полностью центрировать его, вам нужно вычесть из этого значения 50% половину ширины и height, способ сделать это - использовать отрицательные поля, поэтому margin-top должно быть отрицательным значением высоты/2, а margin-left должно быть отрицательным значением ширины/2.

0

попробовать:

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

привет не входит в центр .. может быть какой-то мод на нем может помочь .. но не получить его – Parag

+0

Вышеуказанный код должен быть следующим: var x = (window.innerWidth/2) - (msgbox .offsetWidth/2) + "px"; var y = (window.offsetHeight/2) - (msgbox.offsetHeight/2) + "px"; Здесь отсутствовал пиксель «px». –

2

Как насчет просто делать с помощью CSS:

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

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

его модальный ящик kinda div , и я использовал screen.height и screen.width свойства javascript, чтобы получить окно в центр. Но коробка попадает в вертикальный центр прокрутки страницы, а не в центр видимой области – Parag

0

Попробуйте фиксированное позиционирование:

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

Это только по горизонтали по центру. Вертикальное будет играть с. Я понятия не имею, как браузеры действуют по-разному с вертикальным выравниванием.

0

У меня также была проблема с вертикальной центрировкой на любой веб-странице, требующей прокрутки.

Переключение в положение: фиксированная решить ее, так:

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

Это работает в Firefox, Google Chrome, Safari (ПК) и IE9.

К сожалению, я хотел, чтобы она появилась в передней части pdf file - Всплывающее же появляются перед использованием Firefox, Chrome, но пошел позади в IE9 и Safari ....

Смежные вопросы