本題に入る - 上下にスクロールすると、次の 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()
機能..も機能しませんでした。
ガイダンスはありますか?ありがとう