jQuery位置DIV固定在卷轴上

jQuery position DIV fixed on scroll

本文关键字:位置 DIV jQuery      更新时间:2023-09-26

当用户向下滚动时,我试图修复顶部的一个元素。向下滚动时一切正常(添加了一个固定位置的类),但向上滚动时不起作用。但我不明白为什么:(我用以下代码创建了一个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");
     }
 });

感谢

您需要将初始距离存储在滚动函数之外,否则将在每次滚动时重新计算。这是工作小提琴: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");
     }
 });