これを行うプラグインがあります。これは私が以前に使用したものです。比較的成功したリンクです。素晴らしい例もあります。
しかし、自分でやりたい場合は、それほど難しくありません。コンセプトは少し複雑です。何かを に変更すると、 の場合のようposition
にfixed
スペースを占有しませんstatic
。
この問題に遭遇したとき、同じ場所に 2 番目のアイテムを作成しました (表示する場所によっては表示されない場合もあります)。これは表示されません。次に、ウィンドウが固定されていないオブジェクトscrollTop
の座標より大きいかどうかをチェックするロード/スクロール イベントを実装します。top
そうであれば、固定オブジェクトを表示します。
このようなもの:
$("#yourObject").each(function() { // The ID should be the FIXED object.
var $me = $(this);
var $heightRival = $("#anotherObject"); // This ID should be the non-fixed object.
$me.hide(); // Hide your fixed div.
$(window).bind("load scroll",function() {
var offset = $heightRival.offset(); // Get the document offset of the base object.
var height = $heightRival.outerHeight(); // Get the height of the base object.
if ($(window).scrollTop() > offset.top+height)
$target.show(); // Can be a fade in, slide in, whatever.
else
$target.hide(); // Can be a fade out, etc.
});
});
これは初歩的なコードにすぎませんが、正しい方向に進むはずです。