1

jQueryで最初に垂直方向に中央揃えされた、デフォルトの相対的な配置を持つ要素があります。スクロールして表示されなくなると、位置が固定され、ページの上部に表示され続けます。

ウィンドウのサイズを変更し、固定された要素までスクロールすると、.offset 宣言が更新されないため、ビューの内外でけいれんやスキップが発生します。

グリッチなしでウィンドウのサイズ変更をサポートするようにスクリプトを修正するにはどうすればよいですか? .offset を別のメソッドに置き換える必要がありますか、またはサイズ変更時に .offset を再宣言できますか?

// Repeat menuJQfloat on resize
 $(window).resize(function () {
    menuJQfloat();
    navHomeY = nav.offset().top;
});

これがjsFiddle のデモです。ページのサイズを変更して再スクロールすると、「固定メニュー」がスキップまたはジャークすることがわかります。

編集: このスクリプトは JS の垂直方向のセンタリングがなくてもうまく機能しますが、追加すると、ウィンドウが最初に初期化されたときとは異なるサイズの場合、nav.offset が誤って計算される必要があります。

4

0 に答える 0