虽然高度设置为100%,但以像素为单位获得div高度

时间:2010-06-23 11:36:14

标签: javascript jquery

我想知道是否有任何方法可以获得div高度(以像素为单位),尽管其高度设置为100%高度 这是必需的,因为div内容是动态的,因此div高度具有基于内容本身的不同值。

[编辑] 默认情况下,Div是隐藏的。

我需要以像素为单位获得div高度以便以后操作(div会进行平滑滚动)? 有没有办法做到这一点?

5 个答案:

答案 0 :(得分:15)

由于您标记了jQuery,请使用

$("#myElement").height();

http://api.jquery.com/height/

对于Plain Ol'Javascript,您可以使用element.clientHeightelement.offsetHeight,具体取决于哪一个符合您的需求。

<小时/> 由于div是隐藏的,因此在调用.show()之前,您必须.height(),然后您可以立即将其隐藏起来:

var $myEl  = $('#myElement').show();
var height = $myEl.height();
$myEl.hide();

答案 1 :(得分:5)

theDiv.clientHeight

答案 2 :(得分:2)

您可以使用height()

$("#divInQuestion").height();

答案 3 :(得分:1)

您可以使用.height()功能:

$('#divid').height()

答案 4 :(得分:0)

在慢速浏览器上,显示/隐藏方法可能导致框闪烁(尽管计算机必须非常慢)。因此,如果你想避免这种情况,给div一个不透明度:0 - 甚至可能是一个位置:绝对,所以它不会推动内容。所以要扩展之前的代码:

var $myEl  = $('#myElement').css({"opacity": "0", "position": "absolute"}).show();
var height = $myEl.height();
$myEl.hide().css({"opacity": "", "position": ""});

但是又来了。这可能有点过头了。