暂时禁用使用mousewheel.js滚动

时间:2013-08-01 15:57:37

标签: 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;
 });

2 个答案:

答案 0 :(得分:1)

可能会有所帮助:您可以使用.on()

$('#galPanel').on('mousewheel', function(event, delta){
        event.preventDefault(); // Or return false
});

答案 1 :(得分:1)

如您已使用.on(),请使用 .on() .off() 进行鼠标滚轮事件。

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

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

我不确定如何让它在您的代码中运行。但这很简单,比如开关 ON和OFF )。