如何使页脚固定侧栏停止?

时间:2011-10-16 20:43:59

标签: jquery fixed sidebar

现在我正在使用此代码进行有条件修复的侧边栏:

$(function() {
 var a = function() {
 var b = $(window).scrollTop();
 var d = $("#sidebar-right").offset().top;
 var c=$("#scroller");
 var e=$("#scroller-left");
 if (b>d) {
  c.css({position:"fixed",top:"5px"})
  e.css({position:"fixed",top:"5px"})
 } else {
  if (b<=d) {
    c.css({position:"relative",top:""})
    e.css({position:"relative",top:""})
  }
 }
};
$(window).scroll(a);a()
});

问题是:如果侧边栏内容太高,它会越过页脚。我需要添加什么代码,它会在页脚停止?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您是否希望页面始终足够高以适应侧边栏,或者您是否要关闭侧边栏以使其始终适合?

对于前者,只需将一个元素作为文档流的一部分(例如,在您的示例中可能是#sidebar-right),然后使用大于滚动条的元素;

if ($("#sidebar-right").height() < $("#scroller").height())
    $("#sidebar-right").height($("#scroller").height());

如果是后者,则切断侧边栏,并隐藏任何溢出;

if ($("#scroller").height() > ($("#footer").offset().top - $("#sidebar-right").offset().top)) {
    $("#scroller").css("overflow", "hidden");
    $("#scroller").height($("#footer").offset().top - $("#sidebar-right").offset().top));
}