2

我有一个水平滚动的网站。我正在使用 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;
 });
4

2 回答 2

1

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

$('#galPanel').on('mousewheel', function(event, delta){
        event.preventDefault(); // Or return false
});
于 2013-08-01T16:03:00.493 回答
1

正如您已经使用过的那样.on(),使用鼠标滚轮事件。.on().off()

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

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

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

于 2013-08-01T16:03:18.360 回答