【发布时间】:2014-03-26 21:51:36
【问题描述】:
我有 header 和 sidebar div 块,为了满足我们的特定需求,一旦滚动事件触发,我需要让这两个元素都粘在顶部。
使单个元素保持粘性是没有问题的,但如果有多个,它会阻止滚动动作并不断跳回顶部。
在不使用插件的情况下有什么好的解决方案吗?
这是我的JS Fiddle
而且,以下是适用于单个元素的脚本。
$(window).on("scroll", function () {
var fromTop = $(window).scrollTop();
$(".sidebar").toggleClass("fixed", (fromTop > 50));
$(".header").toggleClass("fixed", (fromTop > 50));
});
【问题讨论】:
-
不需要 JavaScript 变通方法。现代 Web 浏览器可以使用 CSS
position: sticky;本地处理此事件。在这里阅读:developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/… 如果您使用 JS 变体,您总会遇到一些不需要的故障。 CSS 解决方案非常强大。