disqusコメントの読み込み後に$('#footer').offset().top
値が変更されることが問題だと思います。コメントが読み込まれるたびに、またはイベントが発生するたびに、footerTop
(およびfooterTop
の値に基づいてlimit
)を更新する必要があります。
のようなもの:julianmは彼のコメント、利用可能hereで指摘したようにほとんどの場合と同様に
$(function(){ // document ready
if ($('#sticky').length) { // make sure "#sticky" element exists
var el = $('#sticky');
var stickyTop = $('#sticky').offset().top; // returns number
var stickyHeight = $('#sticky').height();
$(window).scroll(function(){ // scroll event
var limit = $('#footer').offset().top - stickyHeight - 20;
var windowTop = $(window).scrollTop(); // returns number
if (stickyTop < windowTop){
el.css({ position: 'fixed', top: 0 });
}
else {
el.css('position','static');
}
if (limit < windowTop) {
var diff = limit - windowTop;
el.css({top: diff});
}
});
}
});
は、このためのjQueryプラグインは、そこにあります。また、スティッキーボックスを任意の位置で停止させるストッパー値もサポートしています。
ありがとうございます。それはそうだと思っていましたが、ブラウザーが異なると制限を無視してフッターをスクロールします。キャッシュをクリアするかページをリフレッシュするときに一度動作するように見えますが、繰り返し表示ごとには表示されません。何か案は? ここにサイトhttp://thecomeupbmx.net/videos/red-bull-empire-of-dirt-practice-edit/の例があります(それは私のものではなく、ちょうどそれに取り組んでいます) –
私は何か必要ですこのためのテストケースは常に失敗します。それは古いjsをキャッシュするブラウザかもしれませんが、私はこれを再現することはできません。 – 19greg96
このjQueryプラグインのhttps://github.com/AndrewHenderson/jSticky(私はMike Jonasが提供している前の例のコメントの1つでそれを見ました)が私が探していたものとまったく同じでした。スティッキーボックスを任意の位置に停止させるストッパー値(クラス、ID、または数値でも可)をサポートしています。 – julianm