jQueryで最初に垂直方向に中央揃えされた、デフォルトの相対的な配置を持つ要素があります。スクロールして表示されなくなると、位置が固定され、ページの上部に表示され続けます。
ウィンドウのサイズを変更し、固定された要素までスクロールすると、.offset 宣言が更新されないため、ビューの内外でけいれんやスキップが発生します。
グリッチなしでウィンドウのサイズ変更をサポートするようにスクリプトを修正するにはどうすればよいですか? .offset を別のメソッドに置き換える必要がありますか、またはサイズ変更時に .offset を再宣言できますか?
// Repeat menuJQfloat on resize
$(window).resize(function () {
menuJQfloat();
navHomeY = nav.offset().top;
});
これがjsFiddle のデモです。ページのサイズを変更して再スクロールすると、「固定メニュー」がスキップまたはジャークすることがわかります。
編集: このスクリプトは JS の垂直方向のセンタリングがなくてもうまく機能しますが、追加すると、ウィンドウが最初に初期化されたときとは異なるサイズの場合、nav.offset が誤って計算される必要があります。