Я работаю над сайтом с заголовком, который, когда значение scrollTop()
превышает 1/4 высоты браузера, анимирует вверх и вниз по экрану и в зависимости от того, прокручивает ли пользователь вверхили вниз. Для домашней страницы заголовок меняет фон и цвет текста после указанного значения scrollTop()
, чтобы приспособить фон видео.
Однако функция headerScrollEvents()
, которая добавляет «show» (заголовок скользит вниз)Классы «скрыть» (заголовок скользящий вверх) и «активный» (цвет фона и цвет текста изменяются в заголовке) до #header
при прокрутке, все еще работает, когда номер позиции прокрутки меньше 1/4 высоты браузера. Цель состоит в том, чтобы предотвратить добавление этих классов, когда пользователь прокручивает вверх от этого значения scrollTop()
до самого верха.
Как получить функцию jQuery для запуска или остановки при достижении определенных позиций прокрутки?
JS:
function headerScrollEvents() {
var yPos = $(window).scrollTop();
$(window).scroll(function() {
var newYPos = $(this).scrollTop();
if (newYPos > yPos) {
$("#header").removeClass("show active").addClass("hide");
} else {
$("#header").removeClass("hide").addClass("show active");
}
yPos = newYPos;
});
}
$(window).scroll(function() {
if ( $(window).scrollTop() <= $(window).height() / 4 ) {
$("#header").removeAttr("class");
} else if ( $(window).scrollTop() >= $(window).height() / 4 ) {
headerScrollEvents();
}
});
CSS:
#header {
top: 0;
left: 0;
position: fixed;
width: 100%;
z-index: 25;
padding: 48px 0;
transition: transform 500ms ease, background 500ms linear;
background: #000;
}
#header.hide {
transform: translateY(-100%);
}
#header.show {
transform: translateY(0%);
}
#header.active {
background: #fff;
}