【问题标题】:JQuery disable onepage scroll in functionJQuery在功能中禁用单页滚动
【发布时间】:2021-08-13 07:41:48
【问题描述】:

在项目中我使用 jquery.onepage.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();
});

【问题讨论】:

    标签: javascript jquery onepage-scroll


    【解决方案1】:

    所以,我只添加了 if 语句来验证 body 是否具有 '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);
        }
    });

    【讨论】:

      猜你喜欢
      • 2016-07-16
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多