javascript - 根据滚动更改固定元素的最高值

标签 javascript jquery css

我喜欢创建一种效果,让我的导航栏在向下滚动时隐藏,但在向上滚动时出现,无论您向下滚动多远。 我已经设法做到这一点 jsfiddle ,但我从那里迷路了。 导航 div 具有 position: fixedtop: 0。我为每个向下滚动的像素数减少了 top。但目前,无论您向下滚动多远,我都没有洞察力来为每个向上滚动的像素数增加 top

我希望我想达到的目标足够清楚。

jQuery

var topScroll = 0;
$(document).scroll(function () {
    var scrolled = $(this).scrollTop();
    if (scrolled > $('nav').height()) {
        $('nav').css('top', ($('nav').height() - scrolled));
    }
    if (topScroll > scrolled) {
        //scrolling up
    } else {
        //scrolling down
    }
    topScroll = scrolled;
});

-

编辑

我想我需要一种在滚动方向改变时保存 scrollTop() 值的方法,然后添加该数字与新的 scrollTop() 之间的差异到我的导航栏的 top 值。我只是不知道该怎么做。

最佳答案

这是你想要的吗?

var lastScrollTop = 0;
$(window).scroll(function(event){
   var st = $(this).scrollTop();
   if (st > lastScrollTop){
        $('nav').css('display', 'none');
   } else {
       $('nav').css('display', 'block');
   }
   lastScrollTop = st;
});

关于javascript - 根据滚动更改固定元素的最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20497169/

相关文章:

javascript - 我希望通过 javascript 应用媒体查询

javascript - 滚动到 iframe 中新打开页面的顶部

javascript - 将预制代码从 Codepen 移动到我的 Brackets 元素时,我缺少什么步骤?

html - 如何在 md-content 中的元素中使用 anchor 链接?

html - 如何将CSS属性传递给child的child? (div级联)

javascript - 解释 Mike Bostock 节点解析循环

javascript - YouTube : get youtube title+ image+description like facebook

javascript - Font Awesome : retrieve css of pseudo element displays a small rectangle

javascript - 阻止了来源为 "http://video.sasads.com"的框架访问框架

html - 在没有编辑器的情况下渲染 ckeditor html