Firefox の新しいスムーズ スクロール機能により、スクロール コールバックがアニメーションの各ステップでトリガーされます。
違いを確認するための FF と Chrome のデモ
それを持っている方法はありますか
- ページのスクロールが終了したときに 1 つのイベントのみを発生させます
- Chrome のようにページを急激にスクロールさせる
Firefox の新しいスムーズ スクロール機能により、スクロール コールバックがアニメーションの各ステップでトリガーされます。
それを持っている方法はありますか
これを試して:
function throttle( fn, timeout ) {
var tid = 0;
return function() {
clearTimeout( tid );
var args = [].slice.call( arguments ),
ctx = this;
tid = setTimeout( function() {
fn.apply( ctx, args );
}, timeout );
};
}
$(window).on("scroll", throttle( function() {
$('div').eq(0).append('scroll happened');
}, 100));
100 ミリ秒以内にスクロールが発生しない場合にのみ、スクロールを起動します。
それはあなたの目的によります。あなたのコードに基づいて、ユーザーがページを下にスクロールするときにアニメーションをトリガーしたいという推測をしています。Ben the Bodyguard: http://benthebodyguard.com/index.php
これを実現するには、アニメーションをページ内の位置に関連付けます。scroll メソッドに渡されるイベント オブジェクトから、現在のスクロール位置を取得できます。次に、現在のスクロール位置が次のアニメーションをトリガーするのに十分なほど変化したかどうかを判断するために、いくつかの計算を行う必要があります。