Предотвратить прокрутку окна, а затем открепить после нажатия кнопки - 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
класс всякий раз, когда вы хотите.