jquery:有没有办法在渲染之前猜测高度?

时间:2011-10-28 11:04:23

标签: jquery height

这是我的代码:

  • 首先我分配一些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,但问题并不完全相同。

谢谢!

2 个答案:

答案 0 :(得分:4)

在渲染之前无法获得height。你有三个选择:

  1. 一次渲染所有元素,然后获得高度。
  2. 追加一个元素,检查高度,并假设每个连续元素的高度相同。
  3. 一种非常不同的方法:将max-height: 100px(示例)添加到元素的选择器中。

答案 1 :(得分:3)

您可能会尝试在屏幕外显示内容,但内容不可见。所以把它放在绝对定位的div中,并将其移动10,000像素。然后渲染,并检查每个的高度。内容仍在呈现中,因此不能完全满足您的要求,但不会显示。然后,您可以调整,最后将内容移动到屏幕上。