2012-02-26 2 views
0

Код ниже работает хорошо на локальном компьютере, но во всплывающем окне удаленного сервера не учитывается ширина прокрутки и отображается в верхней части страницы, даже когда я прокручивал страницу до нижней , Проблема появляется только в IE и только на удаленном сервере. Файлы одинаковы. Что я должен проверить?Всплывающее окно с различными поведением css

HTML

<div style="position:absolute;"> 
    <div id="a_div"> 
     123 
    </div> 
</div> 

CSS

#a_div { 
    display:none; 
    position:fixed; 
    width:850px; 
    top:35px; 
    border:1px solid #B1B8C7; 
    background:white; 
    z-index:3000; 
} 

JS

function showaDiv() { 
    var div = document.getElementById('a_div'); 
    var width = document.body.clientWidth; 
    if (div) { 
     div.style.left = Math.round((width-850)/2)+'px'; 
     div.style.display = 'block'; 
     document.getElementById('a_bgdiv').style.display = 'block'; 
    }  
} 
+0

В соответствии с вашим css он должен появиться на верхнем 35px. –

+0

Почему это работает (как мне нужно) в firefox и chrome? – Pave

+0

Проверьте мой ответ и скрипку. –

ответ

0

this fiddle Попробуйте, если вы хотите, чтобы центр его вертикально

function showaDiv() { 
    var div = document.getElementById('a_div'); 
    var width = document.body.clientWidth; 
    var height = getDocHeight(); 
    if (div) { 
     div.style.left = Math.round((width-850)/2)+'px'; 
     div.style.display = 'block'; 
     div.style.top = Math.round((height-div.clientHeight)/2)+'px'; 
     //document.getElementById('a_bgdiv').style.display = 'block'; 
    }  
} 

function getDocHeight() { 
    var D = document; 
    return Math.max(
     Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), 
     Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), 
     Math.max(D.body.clientHeight, D.documentElement.clientHeight) 
    ); 
} 

Просто добавил верх.

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