堆,
基本上,我想要一个主页,其中包含多个堆叠在一起的帖子,例如 techcrunch 或基本上任何博客。对于每个帖子,我希望有一个侧边栏框,当您滚动时,它会在帖子旁边的页面下方浮动,以便用户可以通过类似 facebook 的按钮或其他任何方式轻松分享帖子,而无需滚动回顶部帖子。
当人员到达每个帖子的底部时,侧边栏停止在屏幕上向下浮动,当人员继续滚动到下一个帖子时,下一个帖子的侧边栏开始向下浮动,依此类推。
一个完美的例子是 9gag.com 主页。注意帖子标题、收藏按钮和社交按钮如何浮动在每个帖子/图片旁边。
我正在尝试使用 jquery 的 scrolltofixed 插件来完成此操作,但我被卡住了。我可以让侧边栏 div 开始正确地向下滚动页面,但是当您到达每个帖子的底部时,我无法让它们停止滚动,因此它们只是开始相互重叠。
通常,您会使用内置于 scrolltofixed 的“limit”属性来阻止它们滚动,如下所示:
$('.class-of-sidebar-box-div').scrollToFixed({
limit: 3000
});
一旦您向下滚动 3000 像素,这将阻止侧边栏框随屏幕滚动。
我试图做的是动态设置每个随附帖子的高度限制 + 随附帖子的顶部偏移量 - 侧边栏框的高度,以便在每个侧边栏框到达底部时停止滚动随附的帖子。
示例代码:
$('.class-of-sidebar-box-div').scrollToFixed({
limit: function(){
var postoffset = $(this).siblings('.accompanying-post-class').offset().top;
var postheight = $(this).siblings('.accompanying-post-class').height();
var sidbardivheight = $(this).height();
var scrolllimit = postoffset + postheight - sidbardivheight ;
return scrolllimit;
}
});
这是失败的。侧边栏框开始正确浮动,但未正确设置“限制”。
有什么想法我哪里出错了吗?
更新:修复了 Brilliand 建议的示例代码。但是,仍然没有设置限制。此外,我尝试了一个更简单的功能,如下所示,即使它不起作用。
也失败的更简单的例子:
$('.class-of-sidebar-box-div').scrollToFixed({
limit: function(){
var scrolllimit = 1000;
return scrolllimit;
}
});
想法?