В силу определенных обстоятельств, пытаюсь написать скрипт (знаю, что обычно это делают с помощью стилей, но в моем случае стили были написаны до меня и ни один из примеров, найденных в Google не подходит, потому что если начинаю менять параметры стили body и т.д., верстка падает), для того, чтобы прибить footer к низу страницы (на тех страницах, где маленький контент-блок).
Нашел неплохое решение:
$(document).ready(function func() {
if ($(document).height() <= $(window).height()) {
console.log('snuggle func!');
$("footer").addClass("navbar-fixed-bottom");
}
});
На коротких страницах все хорошо - footer приклеивается к низу страницы. Однако на больших страницах скрипт также подкидывает в footer "navbar-fixed-bottom"(хотя по идее так быть не должно). В console.log при загрузке $(document).height() и $(window).height() одинаковые, что странно. Вбил в консоли разработчиков эти команды и только тогда получил нормальные значения (разумеется на больших страницах $(document).height() > $(window).height()). Тем не менее скрипт выдает при загрузке страницы одинаковые значения.
Почему так происходит? И как можно решить данный вопрос?
если контент отрисовывается после выполнения сего кода, то код сначало добавит класс, потом отобразит "длинный" контент (а класс то никто уже не удалит).
Думаю разумнее сделать функцию
function updateFooterClass() {
$("footer").toggleClass("navbar-fixed-bottom", $(document).height() <= $(window).height());
}
и вызывать её не только по $(document).ready() но и по каким-то событиям обновления контента. На крайний случай
(document).ready(function() {
setInterval(updateFooterClass, 1000);
});
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости