2011-06-10 51 views
3

我试图用这个函数display:none计算div的计算高度:快速计算一个隐藏的div的高度

function getComputedHeight(theElt){ 
    if(navigator.appName=='Microsoft Internet Explorer'){ 
     tmphght = document.getElementById(theElt).offsetHeight; 
    } 
    else{ 
     docObj = document.getElementById(theElt); 
     var tmphght1 = document.defaultView.getComputedStyle(docObj, "").getPropertyValue("height"); 
     tmphght = tmphght1.split('px'); 
     tmphght = tmphght[0]; 
    } 
    return tmphght; 
} 

这是我的HTML

<a href="javascript:;" onclick="showme('<?php echo 'mydiv765_'.$userid[$i];?>')">View</a> 

,并呼吁

功能
function showme(objid) 
{ 
    var h=getComputedHeight(objid); 
    alert(h); 
} 

该函数返回:汽车。

请我怎样才能解决这一问题?有没有更好的方法来达到同样的效果?

+0

改性其'display'属性值是“无”不具有高度或宽度的元件。 – KooiInc 2011-06-10 12:24:41

+0

好,谢谢,让我看看,如果我可以从这里 – 2011-06-10 12:39:46

+0

嗨Belonwu把它关闭,你可以做2件事,我想:使用'知名度隐藏元素:hidden'或不隐藏元素,但其移出视(使用'left:-5000px'),然后进行计算。 – KooiInc 2011-06-10 13:10:31

回答

1

试试这个?

function getComputedHeight(obj){ 

    var originalDisplay = obj.style.display; 

    if (originalDisplay == "none") { 
     obj.style.filter = "alpha(opacity=1)"; 
     obj.style.opacity = 0.01; 
    } 

    height = obj.offsetHeight; 

    if (originalDisplay == "none") { 
     obj.style.display = originalDisplay; 
     obj.style.filter = "alpha(opacity=100)"; // IE 
     obj.style.opacity = 1; // Firefox, etc.. 
    } 
    return height; 
} 

Height of Hidden Div?