当用户向下滚动时,当该元素接触窗口顶部时,我尝试将一个元素固定在顶部。 向下滚动时一切正常(添加了具有固定位置的类),但是当我向上滚动时则不起作用。 但我不明白为什么:( 我用以下代码创建了一个jsfiddle:http://jsfiddle.net/8h4knr9r/
$(window).scroll(function () {
var distance = $('#navigation-sections').offset().top;
if ($(window).scrollTop() >= $('#navigation-sections').offset().top) {
$('#navigation-sections').addClass("affix");
} else {
$('#navigation-sections').removeClass("affix");
}
});
谢谢
最佳答案
您需要将初始距离存储在滚动函数之外 - 否则它 每次滚动都会重新计算。这是工作 fiddle :http://jsfiddle.net/donal/8h4knr9r/5/
JS 应该如下所示:
var distance = $('#navigation-sections').offset().top;
$(window).scroll(function () {
if ($(window).scrollTop() >= distance) {
$('#navigation-sections').addClass("affix");
} else {
$('#navigation-sections').removeClass("affix");
}
});
关于javascript - jQuery 位置 DIV 固定在滚动上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28844848/