【发布时间】:2017-05-29 07:20:23
【问题描述】:
当滚动位置在两个 div 元素之间时,我尝试创建一个固定的 div 元素。我使用这段代码来创建固定元素:
var sidebar = $('.sidebar').offset().top;
$(window).scroll(function() {
if ($(window).scrollTop() > sidebar) {
$('.sidebar').addClass('fixed');
}else{
$('.sidebar').removeClass('fixed');
}
});
当蓝色 div 到达时,我不知道如何删除固定类。我试图获取蓝色 div 的当前位置并将其添加到 if 语句中:
var blueDiv = $('.bottom').offset().top:
if ($(window).scrollTop() > sidebar && $(window).scrollTop() < blueDiv ){
// add fixed class
}else{
// remove fixed class
}
【问题讨论】:
-
Appel,在你的小提琴中你声明
If you reached the blue div (bottom)。这是否意味着到达蓝色 div 的底部,或者蓝色 div 是整个部分的底部?也就是说,侧边栏是否需要在到达蓝色div的顶部或底部时立即修复? -
我所说的“底部”是蓝色 div 的类,而不是它的底部。对不起,我不清楚。但是感谢您的回答,它对我来说非常适合@DouwedeHaan!
-
没问题!它引起了一些混乱,但你清除了它!
-
对于信息,CSS 带来了 position:sticky,这似乎非常接近您寻找的行为。还有一些未实现的 javascript polyfills。纯 CSS 示例 codepen.io/anon/pen/XRwoRv
-
@GCyrillus 我确实看到了。但我无法弄清楚它是如何工作的。粘性位置不起作用..