2016-08-03 240 views
0

我試圖設置谷歌圖表對象的寬度和高度作爲容器div。要做到這一點,我需要設置一個對象屬性:var options = {'width':$('#chart').width(),'height':$('#chart').height()}; 這實際上工作,但只有當$ .fn.width()返回像素值。當元素被顯示時會發生這種情況,但如果物品不是這樣的話,則會發生這種情況由於我需要在元素隱藏時更新圖表,我如何獲得維度? 這是一個小提琴,幫助你更好地理解我的問題(我的英語不好沒有):https://jsfiddle.net/Lj0daj27/獲取未顯示元素的子元素的寬度/高度

+0

[類似的案件(http://stackoverflow.com/questions/1472303/jquery-get-width-of-element-when-not-visible-display-none) – user2970115

+0

你的英語完全是精細。 –

+0

@ user2970115我知道這種方法,但我的情況不同,因爲我想知道其寬度的元素是隱藏元素的子元素,而不是隱藏自身。如果我想這樣做,我應該設置隱藏和顯示的可見性以阻止,但這對用戶來說是可見的(對於很少的時間),因爲我下面有很多內容。相反,我想這樣做,保持內容不顯示 –

回答

0

document.getElementById('answer').innerHTML = document.getElementById('element').scrollHeight + "px tall!";
#element { 
 
    height: 200px; 
 
    width: 250px; 
 
    padding: 20px; 
 
    background: blue; 
 
    text-align: center; 
 
    color: white; 
 
    opacity: 0; 
 
}
<div id="element"> 
 
    This is my element! 
 
</div> 
 

 
<div id="answer"> 
 
    
 
</div>

我可能會考慮使用scrollHeightscrollWidth屬性來獲取這些尺寸。它也適用於隱藏的元素。

http://www.w3schools.com/jsref/prop_element_scrollheight.asp

+0

我試過scrollWidth,但它返回0元素不顯示時... –

+0

如果您使用'display:none'來隱藏元素,我不相信有一種方法可以找到它的尺寸。我建議通過'opacity'隱藏元素,或者以某種方式簡單地顯示元素,以便存儲它的尺寸。這真的取決於你的元素的上下文。 –