现在我正在使用此代码进行有条件修复的侧边栏:
$(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 :(得分: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));
}