Sidemenu переключается, когда div достигает вершины - PullRequest
0 голосов
/ 03 мая 2020

Итак, у меня есть боковое меню, которое открывается, когда определенный div попадает в верхнюю часть окна.

В меню также есть кнопка переключения, чтобы открывать и закрывать его.

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

Есть ли способ открывать и закрывать меню только после того, как div прошел верхнюю часть экрана, вместо того, чтобы постоянно проверять скрипт?

Мой скрипт:

  var stickyTop = $('#section1').offset().top;

$(window).on( 'scroll', function(){
        if ($(window).scrollTop() >= stickyTop) {
            $('.be-toggled').removeClass('toggled');
        } else {
            $('.be-toggled').addClass('toggled');
        }
    });
});

1 Ответ

0 голосов
/ 03 мая 2020

Переместите вашу функцию в переменную, затем вы можете вызвать $ (window) .off (), чтобы удалить окно, прослушивающее событие прокрутки. Мой пример не совсем то, что вам нужно, но он должен дать вам концепцию включения / выключения при использовании функции.

var stickyTop = $('#section1').offset().top;

var doToggle = function() {
  if ($(window).scrollTop() >= stickyTop) {
      $('.be-toggled').removeClass('toggled');
  } else {
      $('.be-toggled').addClass('toggled');
  }
  $(window).off( 'scroll', doToggle);
});

$(window).on( 'scroll', doToggle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...