http://dev.clickymedia.co.uk/rdicoursefinder/course-finder/
如果您查看该链接,您会看到有许多过滤器同时起作用。根据过滤器插件显示的项目数量调整盒子的整体高度。
当您点击每个项目时,我们会有一个弹出框。这也有不同的高度,并推动下一个项目。我们需要调整容器的高度,考虑到单击项目之前容器的原始高度,以及弹出框的高度。
我已经编写了一些jQuery来执行此操作,但是,正如您将看到的,每次将蓝色弹出框的高度一次又一次地添加到整体高度时,当您单击项目以显示框时,而不是一旦显示,相应地调整容器的高度。
我用于高度的jQuery如下:
var originalHeight = $('#filter-results').height();
var thisHeight = 70 + $('.resultsShowing').height();
var overallHeight = originalHeight + thisHeight;
$('#filter-results').height(overallHeight);
非常感谢任何帮助!
答案 0 :(得分:0)
这一行
var originalHeight = $('#filter-results').height();
需要在click()
事件之外,并且只能在$(document).ready()
答案 1 :(得分:0)
这是因为每次你产生更多高度时你都会使用新的高度。
您需要在第一次需要时将originalHeight
移动到一个特定点,然后将其留在那里。然后,只有thisHeight
需要更新,结果高度应该是前者(静态)+后者(动态)。
答案 2 :(得分:0)
首先删除
window.setInterval(function(){
///etc
}), 1);
它在Chrome中杀了我的机器。
答案 3 :(得分:0)
如果你想在显示之前知道蓝色元素的高度,你应该在内存中创建它:
var blueBox = $('<div />').html( ... );
var height = blueBox.height();
现在您可以将此高度添加到整个容器并显示蓝色元素:
blueBox.appendTo('.overall');
PS。抱歉伪代码