Предотвратить прокрутку окна, а затем открепить после нажатия кнопки - Jquery

Я пытаюсь предотвратить прокрутку моего сайта, пока не нажата кнопка, а затем разрешить прокрутку. Я могу успешно предотвратить прокрутку, но потом не могу отменить привязку этой функции. Вот мой код:

Заранее спасибо!

 $('body').addClass('noscroll');

 $('.fold-trigger').click(function(event) {
   $('body').removeClass('noscroll')
   console.log('removed');
 });


 if ($('body').hasClass('noscroll')){
  $(window).bind('scroll', function(){
    $('body').on({
    'mousewheel': function(e) {
        if (e.target.id == 'el') return;
        e.preventDefault();
        e.stopPropagation();
      }
    })
  }); 
 } else {
  $('body').on({
  'mousewheel': function(e) {
      if (e.target.id == 'el') return;
      e.preventDefault(false);
      e.stopPropagation(false);
    }
  })
 }
}

1 ответ

Решение

Вы должны изменить свою логику, если хотите переключить этот класс на своем теле.

$('body').on('mousewheel', function(e) {
  if ($('body').hasClass('noscroll')) {
    e.preventDefault();
    e.stopPropagation();
  }
});

Затем добавьте и удалите noscroll класс всякий раз, когда вы хотите.

Другие вопросы по тегам