阻止窗口滚动,然后在按钮单击后取消绑定 - Jquery

时间:2016-09-09 14:23:32

标签: javascript jquery scroll mousewheel

我试图阻止滚动我的网站,直到单击按钮然后允许滚动。我可以成功阻止滚动,但我无法取消绑定此功能。这是我的代码:

提前致谢!

 $('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 个答案:

答案 0 :(得分:1)

如果你想在你的身体上切换这个课,你应该改变你的逻辑。

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

然后随时添加和删除noscroll课程。