5

私はここに自分のウェブサイトを構築しています: argit.bounde.co.uk

$(window).scroll();一部のブラウザで問題が発生する可能性があるため、使用するのが悪いことを理解しており、このブログ投稿で発生する可能性のある問題について読んでいます.

navCheckナビゲーションを修正し(ブラウザーのサイズを変更して狭くすると、2番目が表示されます)、「オーバー」状態を占めるナビゲーションを選択するという2つの部分で構成される機能があります。

私はjQueryを初めて使用し、Johnのメソッドを実装できませんでした。変数を配置する場所が気に入りませんでした。そこでsetInterval、navCheck 関数に を含めて、起動回数を制御しようと考えました。しかし、左側のナビ修正機能の間隔を 1 ミリ秒より大きくする余裕はありません。そうしないと、明らかなジャンプが発生します。

デフォルトで .scroll() が起動する頻度と、追求する最良のオプションは何だろうと思いました。関数の固定部分を別の関数に移動し、それを 1 ミリ秒ごとに起動してから、関数の「オーバー」部分を保持し、250 ミリ秒ごとに起動する必要がありますか? または、1msごとにすべてを起動し続けるだけですか?そして、標準の .scroll() よりもパフォーマンスが向上しているということです

または、ジョンのソリューションの実装を手伝っていただければ、それはさらに良いはずですが、それを実装する方法がわかりません。

4

2 に答える 2

1

カウントは特に必要ありません。答えは「たくさん」で、実装固有です。

あなたの目標は、スクロールで状態を設定し、setTimeout を使用してループでその状態を確認することです。

関数が無駄scroll|resize|mousemove|etcのないものである場合、その内部には関数への結合を妨げるものは何もありません。

でも「痩せた」って言うのは

window.onscroll = function (e) {
    screen_obj.x = ...;
    screen_obj.y = ... ;
};

それ以外でポーリングを行います。60fps に設定するか、好きなように設定します。
記録として、いくつかのブラウザーは実際には 1 ミリ秒を提供しません。それらは最小の間隔を提供するだけです。

于 2013-04-09T12:43:19.537 に答える