2011-10-16 105 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(){))中調用它。 –