1

本題に入る - 上下にスクロールすると、次の div 位置に自動的に移動するページがあります。スクロールすると、スクロールイベントが検出され、ページをジャンプしないように、一度に1つのスクロールのみを許可するために一時的に無効になります。

jquery マウスホイール プラグインを使用して、スクロール イベントを取得しています

私はこのコードを使用しています:

$('body').mousewheel(function(event, delta) {

            if(delta < 0 && page < 3){
                    page++;
                    scrollToPage(true);
                }else if(delta > 0 && page > 0){
                    page--;
                    scrollToPage(true);
                }

    });

ここでの問題は、スクロールイベントでほぼ瞬時にイベントリスナーを数十回登録することです。スクロールプッシュごとに1回だけ登録したいのです。

だから私はこれを試しました:

var allowScroll = true;

$('body').mousewheel(function(event, delta) {

            if(allowScroll == true){

                allowScroll = false;

                if(delta < 0 && page < 3){
                    page++;
                    scrollToPage(true);
                }else if(delta > 0 && page > 0){
                    page--;
                    scrollToPage(true);
                }
            }

    });

マウスでスクロールするとうまくいきましたが、トラックパッドでスクロールすると、イベントの登録が速すぎて、allowScroll が false になる前に 2 回実行されます。

私も使ってみました

$.off()

機能..も機能しませんでした。

ガイダンスはありますか?ありがとう

4

0 に答える 0