В плагине jquery.smartWizard есть функция fixHeight, которая регулирует высоту шага мастера. Это используется при первом отображении шага или при обнаружении скрытых разделов внутри шага. Он отлично работает в IE (по крайней мере, в IE 11 на Win8.1) и в FireFox. Но в последней версии Chrome (версия 40.0.2214.94 m) значение externalHeight намного меньше, чем должно быть, более чем на 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 или без него не получается.
EDIT: Вот скрипка, которая демонстрирует разницу между IE и Chrome. Щелкните член, затем щелкните не член. Вы увидите, что второй набор значений отличается в каждом браузере. http://jsfiddle.net/xjk8m8b1/
EDIT2: Вот еще одна скрипка, которая показывает, что оба браузера получают одинаковые значения высоты, пока вы не попытаетесь вычислить видимые элементы. Тогда Chrome далеко. http://jsfiddle.net/xjk8m8b1/2/