-3

在这里,我在右侧边栏的底部有一个 div,它应该以这种方式运行:

  1. 当您向下滚动页面并且 div 到达浏览器屏幕的顶部时,它的类会发生变化,并且它将固定在屏幕顶部,直到您到达 div 的父元素的底部。

  2. 一旦 div 的底部到达父元素的底部,它的类就会变回非固定位置。

现在解决问题:

由于某种原因,在 Firefox 中,一旦 div 到达父元素的顶部,它就会消失,而在 Chrome、IE 和 Safari 中,它仍然可见。

如何防止 div 在 Firefox 中消失?

您可以在此处找到所有必要的代码:http: //bit.ly/S9eJ87

4

1 回答 1

1

发生这种情况是因为 Firefox(我认为某些版本的 IE)没有正确设置高度设置为 100% 的嵌套表的高度。

在 Chrome 上,$('#col12').height() 是 1102。在 Firefox 上,它是 0。

因此,作为一种解决方法,您可以更改此行:

else if ($(this).scrollTop() + $el.height() 
  < $el.parent().offset().top + $el.parent().height())

到:

else if ($(window).scrollTop() + $el.height() 
  < $el.parent().offset().top + ($('.content2').height() - $('#fullsize td:first').height()))

如果你给元素一些更好的 id,你可以替换 td:first 选择器。

基本上发生的事情是这样的:

  • 您的主要内容有一个左列,一行,右列,两行。
  • 右列的底行应该是最大高度,但不是。
  • 因此,要弄清楚该高度应该是多少,取左列的高度,然后减去右列顶行的高度。

如果不清楚,请告诉我,我会尝试更新我的答案。

公里

于 2012-10-20T04:17:12.463 回答