javascript - jQuery 位置 DIV 固定在滚动上

标签 javascript jquery html css

当用户向下滚动时,当该元素接触窗口顶部时,我尝试将一个元素固定在顶部。 向下滚动时一切正常(添加了具有固定位置的类),但是当我向上滚动时则不起作用。 但我不明白为什么:( 我用以下代码创建了一个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/

相关文章:

php - 发送带有纯文本回退的 HTML 时事通讯

javascript - 如何从 xhrpost 函数检索响应数据并将该对象存储在 dojo/store 中?

jquery - 将箭头添加到推特 Bootstrap 的下拉药丸中?

javascript - 使用ajax成功函数解析json

javascript - 提交时表单值不会重置

html - IE的单页对齐

javascript - 如何在 oracle-jet 中刷新表 oj-table 组件?

javascript - parseInt() 和 parseFloat() 位于哪里?

javascript - Twitter Bootstrap 的响应式背景?

jquery - 使用范围作为第 n 个子选择器 - 清理一些代码