获取隐藏div的计算高度

3

我正在尝试使用以下函数计算一个带有display:none属性的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);   
}

该函数返回:自动。请问我该如何解决这个问题?是否有更好的方法来实现相同的效果?

display 属性值为 'none' 的元素没有高度或宽度。 - KooiInc
好的,谢谢。我看看能不能从这里撤下来。 - Belonwu Ogugua
嗨Belonwu,我想你可以做两件事情:使用visibility:hidden隐藏元素或者不隐藏元素但将其移出视口(例如使用left:-5000px),然后进行计算。 - KooiInc
1个回答

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;
}

修改自隐藏div的高度?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接