Javascript OnClick切换滚动

时间:2017-03-30 08:32:54

标签: javascript dom

此代码在单击按钮后禁用滚动,但我无法弄清楚如何重新激活滚动。我认为问题可能与此有关:

window.removeEventListener('scroll', noscroll);

我已经测试了if / else语句,如果我改变了身体的背景颜色,这似乎有效。

var isScrollEnabled = true;

document.querySelector('.mobile-button').addEventListener('click', function(event) {
    event.preventDefault();
    document.querySelector('body').classList.toggle("mobile-menu");

    function noscroll() {
        window.scrollTo(0, 0);
    }

    if (isScrollEnabled = true;) {
        window.addEventListener('scroll', noscroll);
        var isScrollEnabled = false;
    } else {
        window.removeEventListener('scroll', noscroll);
        var isScrollEnabled = true;
    }
});

2 个答案:

答案 0 :(得分:1)

简单的解决方法是使用全局变量:

var isScrollEnabled = true;
document.querySelector('.mobile-button').addEventListener('click', function(event) {
  event.preventDefault();
  document.querySelector('body').classList.toggle("mobile-menu");

  function noscroll() {
    window.scrollTo(0, 0);
  }

  if ( isScrollEnabled ) {
    window.addEventListener('scroll', noscroll);
    isScrollEnabled = false;
  } else {
    window.removeEventListener('scroll', noscroll);
    isScrollEnabled = true;
  }
});

答案 1 :(得分:0)

您可以使用一个布尔值来保存滚动的当前状态。

每次单击按钮时更改布尔值。并在你提到的if / else中使用它