2014-10-10 46 views
2

我有一個div固定高度(例如:500px)。這個div裏面包含一些html塊元素。我想實現的是檢測使用JavaScript什麼高度應該有我的div如果我會設置高度自動insted的固定高度。使用javascript檢測高度自動使用javascript

<div id="someId" style="height: 500px;"> 
    <p>My paragraf</p> 
    <h1>My heading</h1> 
</div> 

以其他字的順序,我想得到div的高度而不考慮底部的空白。

有什麼辦法可以做到這一點?

+0

如果你要問我,爲什麼我從一開始就用500像素的的answere是:這個div是上下文菜單,意味着它爲HTML文檔一樣高,但在移動設備上我不想從底部顯示空白區域。 – paulalexandru 2014-10-10 07:18:50

+1

如果你創建另一個div(在這個div中),並用下面的代碼得到這個高度:$('。innnerDIV')。height()? – derdida 2014-10-10 07:20:43

+0

我認爲你也可以使用CSS http://jsfiddle.net/victor_007/df3d5n2b/2/ – 2014-10-10 09:19:22

回答

0

我想我找到了解決辦法:

$('#someId').clone().attr('id', 'cloneId').appendTo('body'); 
$('#someId').css({'height':'auto','opacity':'0'}); 
alert($('#someId').height()+'px'); 

首先我重複我的div,然後我設置克隆div高度自動,然後我得到它的高度。

+0

是應該工作,但現在你正在增加另一個div到身體?這不妨礙你的觀點? – pewpewlasers 2014-10-10 07:28:27

+0

嗯,如果它沒有顯示我猜'高度()'會顯示錯誤的結果。但我會認真聽取您的意見,並假設它有效:D – pewpewlasers 2014-10-10 07:32:58

+0

如果我將其設爲隱形(不透明度:0)意味着它不會使設計崩潰,並且同時我可以獲得它的高度。謝謝; – paulalexandru 2014-10-10 07:38:26

0

你如何計算孩子的身高並加起來?喜歡的東西:

<div id="#someId" style="height: 500px;"> 
    <p>My paragraf</p> 
    <h1>My heading</h1> 
</div> 

所以在jQuery的

var height = $('#someId > p').height()+$('#someId > h1').height(); 

編輯: 或者,如果你想要的東西一般:

var height = 0; 
$("#someId").children().each(function() { 
    height = height + $(this).height(); 
}); 
0

檢查這個Fiddle

$(document).ready(function(){ 
    var previousHgt=$("div").height(); 
    var getheightWhenAuto=($("div").css("height","auto").height()); 
    $("div").css("height",previousHgt ) 
    alert(getheightWhenAuto); 
});