2011-10-16 67 views
0

眼下I'm使用此代码为我有条件固定侧边栏:如何使页脚的固定侧栏停止?

$(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() 
}); 

的问题是:如果侧边栏含量过高,它会在页脚。我需要添加哪些代码才能停止脚注?

非常感谢。

回答

0

您是否希望页面总是足够高以适合侧边栏,或者是否要将侧边栏关闭以便它始终适合?

对于前者,只需制作一个属于文档流的元素(例如,在您的示例中可能是#sidebar-right),然后再比scroller;

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)); 
} 
+0

嗨,马特,我想要第二种方式。但我有一个问题:它是在顶部还是底部切断?我试图实现代码,但我不知道该把它放在哪里。我把它放在任何地方,它使整个侧边栏不再固定。感谢您的快速帮助! lena – user998212

+0

了解更多信息:#scroller只是侧边栏内容的一个小div。我不知道它是否需要,但它对我有用,我很高兴,不需要改变任何东西:) – user998212

+0

我的代码只是一个样本。为了工作,你至少需要一个带有id =“footer”的页脚元素。除此之外,你可以在$(function(){))中调用它。 –