首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在页面滚动中显示/隐藏导航菜单的偏移量

在页面滚动中显示/隐藏导航菜单的偏移量
EN

Stack Overflow用户
提问于 2015-08-16 13:30:46
回答 3查看 3K关注 0票数 1

尝试在页面滚动位置100 to上设置偏移以显示/隐藏导航菜单。它在一个鼠标滚动中显示/隐藏导航,我已经将lastScroll = 0设置为lastScroll = 100,但无法工作。

Jquery: 小提琴

代码语言:javascript
复制
// Script
lastScroll = 0;
$(window).on('scroll',function() {    
    var scroll = $(window).scrollTop();
    if(scroll === 0){
        $(".nav").removeClass("darkHeader");
    } else if(lastScroll - scroll > 0) {
        $(".nav").addClass("darkHeader");
    } else {
        $(".nav").removeClass("darkHeader");
    }
    lastScroll = scroll;
});

HTML:

代码语言:javascript
复制
<div class="nav">
Sticky top navigation bar
</div>
<div class="wrap">
<h3>Some filler text</h3>
Bacon ipsum dolor sit amet mollit ball tip occaecat brisket cupidatat meatball capicola. Capicola rump turducken, elit shankle cupidatat pastrami duis fatback. Sint occaecat kielbasa labore pastrami corned beef. Sunt swine bacon, fugiat dolor aute anim jerky nostrud et venison shankle consectetur boudin landjaeger.
Pork chop sed turkey aute, duis corned beef pariatur short loin proident culpa. Capicola filet mignon fugiat corned beef shank ea, commodo doner adipisicing eu salami. Doner laboris pariatur beef ribs non id. Andouille eu meatball consectetur ham hock. Ea dolore cillum cow pork loin aliquip leberkas id est corned beef dolore t-bone. In salami jerky cupidatat et.
</div>

因此,如何在鼠标滚动位置100 to显示/隐藏导航。例如小提琴

我的意思是,只有当你向上滚动页面时,它才会显示导航菜单,并以正确的方式出现。但我要显示后滚动页100 up,意味着不显示正确的方式,要显示和隐藏后100 up滚动向上页。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-16 13:55:59

这就是你要的。顺便说一句,medium.com做得很好。他们甚至写了一篇关于他们是如何做到的文章。您可能需要检查一下,以防您真的想改进您的解决方案:

https://medium.com/@mariusc23/hide-header-on-scroll-down-show-on-scroll-up-67bbaae9a78c

代码语言:javascript
复制
var lastScroll = 0;
var scrollUpStart = 0;
$(window).on('scroll',function() {

    var scroll = $(window).scrollTop();
    if(scroll === 0){
        // we are at the top
        $(".nav").removeClass("darkHeader");
    } else if(lastScroll > scroll) {
        // we are scrolling up

        // we check if we have started scrolling up already
        if (scrollUpStart < scroll) {
            // if we just started scrolling up, we set 
            // the scrollUpStart to the current scroll value
            scrollUpStart = scroll;
        }

        // if we continue scrolling up, the difference between 
        // scrollUpStart and scroll will eventually reach a 100px
        if (scrollUpStart - scroll > 100) {
            $(".nav").addClass("darkHeader");
        }

    } else {
        // we are scrolling down
        // reset scrollUpStart
        scrollUpStart = 0;
        $(".nav").removeClass("darkHeader");
    }
    lastScroll = scroll;
});
票数 2
EN

Stack Overflow用户

发布于 2015-08-16 13:41:52

此JS应起作用:)

Javascript

代码语言:javascript
复制
$(window).on('scroll',function() {
    var scroll = $(window).scrollTop();
    if(scroll >= 100){
        $('.nav').fadeOut();
    } else {
        if(!$('.nav').is(":visible")){
            $('.nav').fadeIn();
        }
    }
});

http://jsfiddle.net/9fbr320y/16/

票数 2
EN

Stack Overflow用户

发布于 2015-08-16 13:44:24

$(window).scrollTop()从顶部返回滚动量(以像素为单位),因此只需编写:

代码语言:javascript
复制
$(window).on('scroll',function() {    
    console.log($(window).scrollTop());
    var scroll = $(window).scrollTop();
    if(scroll > 100){
        $(".nav").addClass("darkHeader");
    } else {
        $(".nav").removeClass("darkHeader");
    } 
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32035605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档