【发布时间】:2013-08-21 13:30:37
【问题描述】:
我一直在寻找解决我的粘性侧边栏问题的方法。我对我希望它如何行动有一个具体的想法;实际上,我希望它在您向下滚动时粘在底部,然后一旦您向上滚动,我希望它以流畅的运动(不跳跃)粘在顶部。我找不到我想要达到的目标的示例,所以我创建了一个图像,希望能更清楚地说明这一点:
- 边栏位于页眉下方。
- 向下滚动时,侧边栏与页面内容保持水平,以便您可以滚动浏览侧边栏和内容。
- 到达侧边栏的底部,侧边栏会粘在视口的底部(大多数插件只允许粘在顶部,一些允许粘在底部的插件不允许两者都允许)。
- 到达底部,侧边栏位于页脚上方。
- 当您向上滚动时,边栏与内容保持水平,因此您可以再次滚动浏览内容和边栏。
- 到达侧边栏的顶部,侧边栏会粘在视口的顶部。
- 到达顶部,侧边栏位于标题下方。
我希望这是足够的信息。我创建了一个 jsfiddle 来测试任何插件/脚本,我已经为这个问题重置了:http://jsfiddle.net/jslucas/yr9gV/2/.
【问题讨论】:
-
这是一个很好的问题和很好的说明。就像一个注释(因为我正在寻找其他搜索词):这个确切的行为是在 WordPress 管理界面中实现的。我还没有通过代码,而是在检查发生了什么。似乎侧边栏设置为
postition:fixed。然后是一个 JS 滚动事件监听器,它检测侧边栏是否应该随着内容滚动,并将其切换到position:absolute并使用 javascript 设置top。一旦侧边栏停止滚动,它会再次更改为position:fixed,并使用适当的top -
不能再编辑我原来的评论了。但这是在 WP 管理界面中实现这一点的代码:core.trac.wordpress.org/changeset/26125(相关赛道票:core.trac.wordpress.org/ticket/19994)
-
这个问题有 2021 年的解决方案吗?
标签: jquery position fixed sidebar sticky