Я использую wordpress для создания веб-сайта. Я пытался создать липкую навигационную панель, и мне удалось ввести следующий код: --JS: const nav = document.querySelector ('# masthead'); пусть navTop = nav ....

0
Muhammad Jawad 14 Янв 2021 в 09:51

2 ответа

Лучший ответ

Вам просто нужно оставить только «больше» и удалить «равно», потому что это означает, что если позиция прокрутки больше ИЛИ равна 0, тогда применить фиксированный стиль.

Напишите это так: if (window.scrollY > navTop)

0
h1kiga 14 Янв 2021 в 07:09

Просто добавьте оператор, чтобы проверить, когда страница находится вверху:

else if (scrollY == 0) {
    nav.classList.remove('fixed')
}

Также я бы рекомендовал добавить логическую переменную, чтобы событие не запускалось все время, примерно так:

var ticking = false;

window.onscroll = function (e) {
  if (!ticking) {
    if (window.scrollY >= navTop) {
      nav.classList.add('fixed');
      ticking = true;
  } else if (scrollY == 0) {
    nav.classList.remove('fixed');
    ticking = false;
  } 
1
MicaB 14 Янв 2021 в 07:10
65714530