此代码在单击按钮后禁用滚动,但我无法弄清楚如何重新激活滚动。我认为问题可能与此有关:
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;
}
});
答案 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中使用它