2011-07-22 89 views
0

我無法讀取絕對定位元素高度。絕對定位元素的計算高度

我主要目標是建立另一個DIV將淡出黑色背景,以填補整個頁面,但我無處可去......

我試過document.body.scrollWidth,但只能在加載階段的開始。當主DIV加載時,需要更多的空間而不是褪色的空間,並且底部有空間沒有填充淡入淡出的DIV元素。

有人可以幫忙嗎?

div#main_theater{ 
    position: absolute; 
    left: 80px; 
    top: 0; 
    background-color: #EEE4B9; 
    width: 940px; 
    opacity: 1; 
    z-index: 100; 
} 
div#blackOut{ 
    position: absolute; 
    text-align: center; 
    top: 0; 
    left: 0; 
    background-color: #000; 
    width: 100%; 
    z-index: 10; 
    color: #fff; 
    opacity: .7; 
} 

這裏是工作(在開始):

var picHeight = document.body.scrollWidth; 
blackOut = document.createElement('div'); 
blackOut.setAttribute('id','blackOut'); 
blackOut.style.height = picHeight + 'px'; 

和AJAX調用PHP腳本後,我得到窗口的新的大小。新的尺寸大於div#main_theater,其大於div#blackOut

if(document.getElementById('main_theater')){  
    blackOut.style.height = document.getElementById('main_theater').style.height; 
} 

當AJAX呼叫完成時,div#main_theater比以前的身高要大。另外,我試圖在重新流動之後閱讀scrollHeight/offsetHeight,之後通過AJAX調用,並且數字與之前的一樣(?)...

編輯:有可能AJAX responseText加載文檔,但接下來JS中的命令速度太快,無法捕獲圖像加載時的真實文檔大小。在我看來,圖像不是在這麼短的時間內加載的,因此文檔的大小無法適當地加以整理。

+0

你可以發佈你的代碼,以便我們可以看到你的工作? – Jrod

+0

代碼是巨大的,但我試圖簡化它.. –

+0

你只標記了這個'css',我假設你打算在'javascript'中這樣做,所以我添加了該標記。你更準確地標記你的問題,結果會更好。 –

回答

-1

爲什麼不使用固定定位。像這樣的東西:

<style> 
div#totaldude { 
    position: fixed; 
    top: 0; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    z-index: 100; 
    background: black; 
    opacity: 0; 
} 
</style> 

<script> 
    $("body").append("div id='totaldude'></div>"); 
    $("#totaldude").fadeTo("fast", 0.5); 
</script>