AleksMey
@AleksMey
Пытаюсь разобраться

Как удалить класс в скрипте при скроллинге вверх?

Написал такой скрипт, где при скроллинге вниз шапка исчезает, а при скролинге вверх добавляются классы position fixed, фон для шапки и отступы. Но при возвращению к defaultOffset он не умеет удалять эти значения. Помогите пожалуйста.

let lastScroll = 0;
const header = document.getElementById('nav');
const defaultOffset = 150;
const scrollPosition = () => window.pageYOffset || document.documentElement.scrollTop;

window.addEventListener('scroll', () => {
  if(scrollPosition() > lastScroll && scrollPosition() > defaultOffset) {
  header.classList.remove('header_fix')
  }
else if (scrollPosition() < lastScroll) {
  header.classList.add('header_fix'); 
}
lastScroll = scrollPosition();
});
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
@alexshipin
javascript-developer
let header = document.getElementById("nav");

window.addEventListener("scroll", () => {
  let scrollPosition = window.pageYOffset;
  if (scrollPosition > 150) header.classList.remove("header_fix");
  else if (scrollPosition < 150) header.classList.add("header_fix");
});


Проблема в том, что вы привязываетесь к константе, которая не видит, изменили вы что-то или нет.
Код, что я вам прикладываю, отлично отрабатывает в песочнице то, что вами запланировано
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы