jquery - 使用 mousewheel.js 暂时禁用滚动

标签 jquery scroll mousewheel

我有一个水平滚动的网站。我使用 mousewheel.js 通过鼠标滚轮水平滚动(或上下滚动)。我正在使用 CSS Tricks 中的片段像这样:

$("body").mousewheel(function(event, delta) {
      this.scrollLeft -= (delta * 5);
      event.preventDefault();
   });

当我向下滚动时,浏览器将其解释为向右滚动。这效果很好。

我需要能够暂时禁用此行为。例如,我有一个用画廊覆盖网站的面板。当该面板打开时,我想像这样禁用滚动:

$("a.gal").on("click", function(){
    $("#galPanel").addClass("open");
    $("body").mousewheel(function(event, delta) {
        event.preventDefault();
    });
});

当我们退出面板时,我想重新启动鼠标滚轮插件。

知道如何实现这个目标吗?

更新:我找到了一个可行的解决方案,但不确定这是否是最好的方法:

$("#galPanel").bind("mousewheel", function() {
       return false;
 });

最佳答案

由于您已经使用了 .on(),因此请使用 .on().off() 用于鼠标滚轮事件。

$("body").on('mousewheel', function(){
// ToDos
});

$("a.gal").on("click", function(){
    $("#galPanel").addClass("open");
    $("body").off('mousewheel', false);
});

我不知道如何让它在你的代码中工作。但这很简单,就像开关(开和关)。

关于jquery - 使用 mousewheel.js 暂时禁用滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17998932/

相关文章:

javascript - 用户的文本输入 - 移动前缀应限制输入的数字数量。

Javascript-在设置的超时后执行 onscroll 函数

android - gridview的锁定滚动

jquery - 获取显示内元素的大小 :none parent

jquery - 计算元素内的复选框数量

jquery - 如何使用 jQuery 检查存在的值属性

jquery - 滚动 - 单击无法在固定侧边栏内滚动自定义滚动条

jquery - 如何禁用div中的鼠标滚轮点击?

javascript - jQuery UI Slider -> 支持鼠标滚轮?

jQuery 鼠标滚轮不支持触控板?