2011-10-28 90 views
1

這裏是我的代碼:jquery:有沒有辦法在渲染前猜測高度?

  • 首先我給你一些HTM代碼中有一個表中它。
  • (該表不可見)
  • 然後我轉儲高度:每行爲0。
  • 然後我fadeIn()表
  • 然後我轉儲高度:它是320px的每一行。

你知道在渲染之前如何計算高度嗎?

我的目標是在行的高度過大時「切」行中的某些信息。

$('#tableau').html(htm); 
    $('.tableau tr td').each(function() { 
    console.log($(this).height()); 
    }); 
    $('#wait').queue(function() { 
    $('#tableau').fadeIn(100).queue(function() { 
     $('.tableau tr td').each(function() { console.log($(this).height()); }); 
     } 
    ); 
    }); 

我知道這聽起來像here但它不是完全一樣的問題。

謝謝!

回答

3

在渲染之前不可能獲得height。你有三種選擇:

  1. 立刻呈現所有元素,然後獲取高度。
  2. 附加一個元素,檢查高度,並假定這個高度對於每個連續元素都是相同的。
  3. 一個非常不同的方法:將max-height: 100px(示例)添加到元素的選擇器中。
2

您可能會嘗試將脫離內容的內容顯示在不可見的位置。因此,把它放在絕對定位的div中,並將其移動10000個像素。然後渲染,並檢查每個的高度。內容仍在呈現,因此它不能完全滿足您的要求,但不會顯示。然後您可以調整,最後將內容移動到屏幕上。

相關問題