我有以下小提琴:http: //jsfiddle.net/yFjtt/1/
这个想法是用户可以滚动 PAST 标题以使侧边栏“粘”在适当的位置,同时他们进一步向下滚动页面。
当它们靠近页面底部时,它应该计算出剩余多少空间以及侧边栏需要多少空间,并添加一些负边距以在保持固定位置的同时向上移动侧边栏。
到这里为止一切正常。
下一个问题是确保侧边栏只向上移动到它需要的距离,并且应该保持距离底部大约 10 像素。这样,侧边栏将被固定,直到它需要向上移动以显示其内容,然后一旦全部显示出来,它就会再次卡住距离底部约 10 个像素。
这是我试图实现这一目标的地方(完整代码参见小提琴):
if( $(window).scrollTop() > (documentHeight - sidebarHeight) ) {
if( offsetBottom < 10) {
}
else {
$('div.sidebar').stop(true,false);
$('div.sidebar').animate({'margin-top':offset}, 300);
}
} else {
$('div.sidebar').stop(true,true);
$('div.sidebar').css({'margin-top':'0'});
}
但是侧边栏仍然在页面上移动得太远了......有人可以帮忙吗?我敢肯定,从底部计算偏移量只是一个简单的错误。