ここでは、このように動作するはずの右側のサイドバーに div があります。
1) ページを下にスクロールして div がブラウザー画面の上部に到達すると、クラスが変更され、div の親要素の下部に到達するまで画面の上部に固定されます。
2) div の下部が親要素の下部に達すると、そのクラスは非固定位置に戻ります。
http://jsfiddle.net/comparebest/z2Nyn/1/で遊ぶための jsfiddle は次のとおりです。
今問題に:
何らかの理由で、FireFox では div が親要素の下部に達すると div が消えますが、Chrome、IE、および Safari では表示されたままになります。
この動作を確認するには、ブラウザ画面のサイズを小さくする必要がある場合があります。
FFでdivが消えないようにするにはどうすればよいですか?
PS:
jQueryコードは次のとおりです。
function fixInParent(selector) {
var $el = $(selector);
$(window).scroll(function() {
if($el.parent().offset().top > $(this).scrollTop())
$el.addClass('top').removeClass('floating').removeClass('bottom');
else if ($(this).scrollTop() + $el.height() < $el.parent().offset().top + $el.parent().height())
$el.addClass('floating').removeClass('top').removeClass('bottom');
else
$el.addClass('bottom').removeClass('top').removeClass('floating');
});
}
$(document).ready(function() {
fixInParent('#floater');
});