在 jquery.smartWizard 插件中,有一个名为 fixHeight 的函数可以调整向导步骤的高度。这在第一次显示步骤或在步骤中显示隐藏的 div 时使用。它在 IE(至少在 Win8.1 上的 IE 11 中)和 FireFox 中运行良好。但是,在最新版本的 Chrome(版本 40.0.2214.94 m)中,outerHeight 的值比应有的值小得多,超过 100 像素或更多。
这是开箱即用的功能:
SmartWizard.prototype.fixHeight = function(){
var height = 0;
var selStep = this.steps.eq(this.curStepIdx);
var stepContainer = _step(this, selStep);
stepContainer.children().each(function() {
if($(this).is(':visible')) {
height += $(this).outerHeight(true);
}
});
// These values (5 and 20) are experimentally chosen.
//stepContainer.height(height);
//this.elmStepContainer.height(height + 12);
stepContainer.animate({ "height": height - 12 }, 500);
this.elmStepContainer.animate({ "height": height }, 500);
alert(window.outerHeight);
}
我修改最后的步骤来添加动画。有或没有 Chrome 都会失败。
编辑: 这是一个演示 IE 和 Chrome 之间区别的小提琴。单击成员,然后单击非成员。您将看到第二组值在每个浏览器中都不同。 http://jsfiddle.net/xjk8m8b1/
EDIT2: 这是另一个小提琴,它显示两个浏览器都获得相同的高度值,直到您尝试计算可见元素。然后 Chrome 就不行了。 http://jsfiddle.net/xjk8m8b1/2/