JQuery禁用页面滚动功能



在项目中我使用jquery. onpage .scroll插件。但是当我打开模态窗口并滚动时,页面也向后滚动。我在插件的源文件中找到了2个位置:

1)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (t) {
t.preventDefault();
var n = t.originalEvent.wheelDelta || -t.originalEvent.detail;
if (!e('body').hasClass('disabled-onepage-scroll')) u(t, n);
});

2)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (e) {
e.preventDefault();
var t = e.originalEvent.wheelDelta || -e.originalEvent.detail;
u(e, t);
});

如果我注释,那么滚动是禁用的,但是我如何使用另一个文件中的函数禁用它?例如,我有一个用于打开模态窗口的事件侦听器,当它打开时->禁用滚动

myModalEl.addEventListener('shown.bs.modal', function (event) {
disableOnepageScroll();
});
myModalEl.addEventListener('hidden.bs.modal', function (event) {
disableOnepageScroll();
});

所以,我只是添加if语句来验证主体是否具有'modal-open'类名。

1)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (e) {
e.preventDefault();
var t = e.originalEvent.wheelDelta || -e.originalEvent.detail;
if (!$(document.body).hasClass('modal-opened')) {
u(e, t);
}
});

2)

e(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function (t) {
t.preventDefault();
var n = t.originalEvent.wheelDelta || -t.originalEvent.detail;
if (!$(document.body).hasClass('modal-open')) {
console.log('AAAAA');
if (!e('body').hasClass('disabled-onepage-scroll')) u(t, n);
}
});

最新更新