2011-07-22 50 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>