元素的大小需要重新计算高度,因为JSON数据被过滤
element size using need to recalculate height as JSON data is filtered
var height = $("#mainbody").height();
$("#leftnav").css({"height":height});
$("#leftnav").css({"min-height":height,"padding-bottom":"15px","height":"auto"});
if($.browser.msie && $.browser.version < 7){
$("#leftnav").css({"height":height});
$("#leftNavSearch ul li").each(function(){
if($(this).height() < 20){
$(this).css({"height":"20px"});
}else{
$(this).css({"height":"auto"});
}
});
}else if($.browser.msie && $.browser.version > 7){
$("#leftnav").css({"height":"auto"});
}
上面的函数计算#mainbody和#leftnav的高度。
但是,当您过滤页面上的JSON数据时,您最终会在底部留下大量空白。
当选择过滤器链接时,重新计算高度的最佳方法是什么?
首先,你应该包括Ben Alman的伟大油门插件,我们将使用它来限制resize函数被调用的速率。
接下来我们把你的脚本放进一个函数
function resize_left_nav(){
//YOUR SCRIPT GOES HERE
}
之后,我们在左导航上设置一个自定义事件,我们将触发该事件来调整列的大小。我们使用throttle来限制resize_left_nav函数被调用的速率
$('#leftnav').bind('resize-column',function(){
$.throttle(250, resize_left_nav);
});
我们希望在两种情况下触发此事件:
页面加载
$(function(){ $('#leftnav').trigger('resize-column'); });
当物品列表更新时。当你的过滤完成后,触发事件。
为了稍微清理一下,我们可以像这样将整个代码包装在IIFE(立即调用的函数表达式)中:
(function(){
function resize_left_nav(){ ... }
$('#leftnav').bind( ... );
$(function(){ ... });
})();
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- ExtJS——在展开/折叠时调整面板高度
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 单击页面上的链接后高度发生变化
- 不加载宽度和高度的角度pintura
- onclick函数需要双击,因为类分配延迟
- 查找元素高度,包括边距
- 如何自动调整标签的高度以适应内容
- Javascript高度问题
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 通过jquery设置最小高度
- 文档就绪提供了错误的选择器高度
- 调整缩放窗口高度提升缩放
- 根据图像高度添加类
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- 检测非移动页面上的移动设备屏幕宽度和高度
- 元素的大小需要重新计算高度,因为JSON数据被过滤
- 在Bootstrap表中,如何更改行高度,因为我在行中有一个数据格式化器框,它被缩小了