JavaScript для верстальщика. Урок 05. Фиксируем меню при скролле
Чтобы при скролле страницы меню оставалось на своём месте, is не нужен, достаточно в css указать для него фиксированное позиционирование: position: fixed
Автор ставит более сложную задачу: меню прокручивается вместе со страницей и фиксированным становится только когда прокрутился блок header
Находим высоту блока header с id = "js-header", присваиваем значение переменной headerH
var headerH = $("#js-header").height();
Отслеживаем на сколько проскроллен документ.
Событие скролл
$(document).on("scroll", function(){
})
Внутри создаём переменную:
var documentScroll = $(this).scrollTop();
Добавляем условие
if(documentScroll > headerH) {
$("#js-nav-container").addClass("fixed");
});
} else {
$("#js-nav-container").removeClass("fixed");
}
var headerH = $("#js-header").height();
$(document).on("scroll", function(){
var documentScroll = $(this).scrollTop();
if(documentScroll > headerH) {
$("#js-nav-container").addClass("fixed");
}
else {
$("#js-nav-container").removeClass("fixed");
}
})
P.S. Автор добавил ещё несколько усовершенствований в прокрутку, например, изменяет отступ навигации при прокрутке. Эти усовершенствования полностью описываются функциями addClass и removeClass
Автор ставит более сложную задачу: меню прокручивается вместе со страницей и фиксированным становится только когда прокрутился блок header
Находим высоту блока header с id = "js-header", присваиваем значение переменной headerH
var headerH = $("#js-header").height();
Отслеживаем на сколько проскроллен документ.
Событие скролл
$(document).on("scroll", function(){
})
Внутри создаём переменную:
var documentScroll = $(this).scrollTop();
Добавляем условие
if(documentScroll > headerH) {
$("#js-nav-container").addClass("fixed");
});
} else {
$("#js-nav-container").removeClass("fixed");
}
Код полностью
var headerH = $("#js-header").height();
$(document).on("scroll", function(){
var documentScroll = $(this).scrollTop();
if(documentScroll > headerH) {
$("#js-nav-container").addClass("fixed");
}
else {
$("#js-nav-container").removeClass("fixed");
}
})
P.S. Автор добавил ещё несколько усовершенствований в прокрутку, например, изменяет отступ навигации при прокрутке. Эти усовершенствования полностью описываются функциями addClass и removeClass