ウィンドウがスクロールされる27pxごとに何かをしたい。scroll
イベントハンドラー内に配置された次のコードを作成しました。
scrollSpy++
if (scrollSpy > 27) {
scrollSpy = 0;
console.log("27px scrolled");
}
しかし、どういうわけかそれは機能していません。
スクロールが非常に遅いと、イベントはかなり定期的にトリガーされますが (実際に 27 ピクセル以降かどうかはわかりません)、高速でスクロールすると、イベントはランダムにトリガーされるか、まったくトリガーされないようです。
scroll
エラーは、スクロールされたすべてのピクセルに対してイベントがトリガーされるという仮定にあると思います。これは、scrollSpy++
メソッドが機能するための要件であるためです。
もちろん、それが本当にエラーなのかどうかはわかりません。これを正しく行うにはどうすればよいですか?
注: この質問はこの質問の複製ではありません。受け入れられた回答はリールを対象としているためです。
編集:
答えに基づいて、私はこのif文を書きました:
if (window.pageYOffset % 27 === 0) {
// do something
}
しかし、まだ機能していません。速くスクロールすると、機能が失敗します。したがって、scroll
イベントがトリガーされる方法と関係があります。これに対する解決策を知っていますか?setTimeout
それともsetInterval
多分?