容器高度设置为css容器中最后一个子项的顶部+几个px

时间:2014-04-09 16:01:08

标签: jquery html css containers

我试图通过Isotope,无限滚动和Packery的组合将容器的高度设置为容器高度内的最后一个子容器。这是我在代码中基本拥有的内容。

   <html>
    <div id="container" class="variable-sizes isotope" style="position: relative; overflow: hidden;">
       <div class="isoItem isotope-item" style="position: absolute; height: 0px; left: 0px; top: 0px;"> </div>
       <div class="isoItem" style="position: absolute; left: 0px; top: 0px;"></div>
       <div class="isoItem" style="position: absolute; left: 340px; top: 0px;"></div>
       <div class="isoItem" style="position: absolute; left: 680px; top: 0px;"></div>
       <div class="isoItem" style="position: absolute; left: 1020px; top: 0px;"></div>
       <div class="isoItem" style="position: absolute; left: 1190px; top: 0px;"></div>
       <div class="isoItem" style="position: absolute; left: 1360px; top: 2089px;"></div>
    </div>
   </html> 

这样的事情就是我想要实现的目标:

$('#container').css('height', $('.isoItem:last').css('top') + '317px');

在这种情况下,#container高度将设置为2089px + 317px = 2415px 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

请改为尝试:

$('#container').height( (parseInt( $('.isoItem:last').css('top'), 10) + 317) );

为什么?

$('.isoItem:last').css('top')返回带有单位的值,例如px,因此您无法对其进行直接数学运算。首先通过parseInt()将其转换为interget,然后添加317(当jQuery自动使用+ 'px'时,无需附加.height()