2

私は横スクロールのウェブサイトを持っています。私はmousewheel.jsを使用して、マウスホイールで水平方向に(または上下に)スクロールしています。私はCSSトリックのスニペットを次のように使用しています:

$("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