在这里,我在右侧边栏中有一个 div,它应该以这种方式运行:
1)当您向下滚动页面并且 div 到达浏览器屏幕的顶部时,它的类会发生变化,并且它将固定在屏幕顶部,直到您到达 div 的父元素的底部。
2)一旦 div 的底部到达父元素的底部,它的类就会变回非固定位置。
这是供您使用的 jsfiddle http://jsfiddle.net/comparebest/z2Nyn/1/
现在解决问题:
由于某种原因,在 FireFox 中,一旦 div 到达父元素的底部,div 就会消失,而在 Chrome、IE 和 Safari 中它仍然可见。
您可能需要缩小浏览器屏幕的大小才能观察此行为。
如何防止 div 在 FF 中消失?
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');
});