CSS を使用した固定配置は、非常に限定的なアプローチです。このスタイルの「固定」領域を実行する方法は多数ありますが、その多くは、ここで同様の質問に対する回答として既に提供されています (上の検索を試してみてください)。
1 つの手法 (多くが基づいている) は、(簡単に言えば) そのようなものです。
- ブラウザのスクロールをキャプチャする
- 選択した要素 (x) の上からの位置を取得します
- スクロール > x かどうかを確認します。そうであれば、要素にクラスを適用して特定の位置に固定します。
同じことが逆に機能します。たとえば、次のようになります。
var target = $('#div-to-stick');
var div_position = target.offset().top;
$(window).scroll(function() {
var y_position = $(window).scrollTop();
if(y_position > div_position) {
target.addClass('fixed');
}
else {
target.removeClass('fixed');
}
}
注:上記のコードを完成させるために選択した方法によっては、div の位置が変更されるとページが「ジャンプ」することがよくあります。これは常に (目立つ) 問題ではありませんが、target.height() で .before を使用し、同じ高さの「偽の」置換 div を追加することで、これを回避することを検討できます。
お役に立てれば。