Использование JavaScript IF-операторов для высоты боковой панели

У меня есть сайт, который состоит из трех столбцов:

1 - #zeroey - левая боковая панель навигации 2 - #primary - основное содержимое 3 - #secondary - правая боковая панель

Боковая панель #zeroey nav должна иметь максимальную высоту 100%, поскольку она имеет серый фон. Выше #primary и #secondary находится изображение заголовка, высота которого составляет около 300 пикселей (но не всегда 300 пикселей).

Я создал скрипт, который суммирует внешнюю высоту изображения заголовка и #primary, затем изменяет размер #zeroey, чтобы соответствовать той высоте, которая заставляет его казаться полной высотой. Однако, если #secondary боковая панель больше, чем основной контент, в нижней части страницы появляются пробелы.

Я тестирую сценарий, который в основном говорит: "Вот высота первичного, а вот высота вторичного. Если первичный выше, чем вторичный, то запустите сценарий, но если вторичный выше, чем первичный, немного выключите другой скрипт, который использует вторичный + заголовок изображения вместо.

Сайт в настоящее время находится на моем сервере разработки здесь - http://deset.me/avenir/

Вот моя попытка:

jQuery(window).load(function(){
var a = jQuery("#primary").outerHeight();
var b = jQuery("#secondary").outerHeight();

if(a > b) {
    jQuery("#zeroey").height( jQuery("#page-header-img").outerHeight() + jQuery("#primary").outerHeight()  );
    }
else if (a == b) {
    jQuery("#zeroey").height( jQuery("#page-header-img").outerHeight() + jQuery("#primary").outerHeight()  );   
}
else {
    jQuery("#zeroey").height( jQuery("#page-header-img").outerHeight() + jQuery("#secondary").outerHeight()  );
}
});

В настоящее время все работает нормально, хотя загрузка страницы вызывает задержку при изменении размера. Я все еще получаю пробелы, хотя. Похоже, скрипт пытается вычислить вторичный + заголовок изображения. Ошибки в вышесказанном?

1 ответ

Похоже, что с вашим кодом все в порядке, хотя это можно сделать более эффективно, например:

jQuery(window).load(function(){
    jQuery("#zeroey").height(jQuery("#page-header-img").outerHeight()+Math.max(jQuery("#secondary").outerHeight(), jQuery("#primary").outerHeight()));
});

Здесь происходит то, что вы добавляете outerHeight изображения заголовка к outerHeight из того, что Div имеет максимум outerHeight с помощью Math.max,

Но есть способы сделать это только с помощью CSS, который лучше всего подходит для этой ситуации. Вы можете посмотреть в создании body а также html имея высоту 100%, как найдено здесь. Или вы можете попробовать один из многих других способов, найденных здесь

Другие вопросы по тегам