Привет! Для добавления класса
scroll-up при прокрутке вверх можно сохранять предыдущее значение
scrollTop и сравнивать его с текущим значением при каждом событии прокрутки. Если текущее значение меньше предыдущего, то добавляем класс
scroll-up, иначе удаляем его. Для удаления класса
scroll-up при достижении
header__section-info можно получить координаты этого элемента и удалить класс, если текущее значение
scrollTop больше или равно его координатам.
Вот пример кода:
document.addEventListener('DOMContentLoaded', function () {
'use strict';
var prevScrollpos = window.pageYOffset;
var sectionInfo = document.querySelector('.header__section-info').getBoundingClientRect().top + window.pageYOffset;
var headerOneELement = document.querySelector('.header__section-navbar');
window.addEventListener('scroll', function () {
var currentScrollpos = window.pageYOffset;
// fixedHeader on scroll
function fixedHeader() {
if (currentScrollpos > sectionInfo) {
headerOneELement.classList.add('fix');
headerOneELement.classList.add('scroll-up');
document.querySelector('.header').style.marginBottom = headerOneELement.offsetHeight + 'px';
if (currentScrollpos < prevScrollpos) {
headerOneELement.classList.remove('scroll-up');
}
} else {
headerOneELement.classList.remove('fix');
headerOneELement.classList.remove('scroll-up');
document.querySelector('.header').style.marginBottom = '0';
}
prevScrollpos = currentScrollpos;
}
fixedHeader();
});
});
Обрати внимание, что я сохраняю координаты
header__section-info в переменной
sectionInfo с учетом текущего значения
scrollTop. Я также инициализирую переменную
prevScrollpos вне функции обработчика события прокрутки, чтобы она была доступна внутри обработчика и сохраняла значение
scrollTop предыдущего события.