滚动向上导航显示

时间:2016-04-19 09:29:36

标签: javascript jquery navigation show-hide

我从另一个网站复制了这个脚本,我不确定我在这里做错了什么。该脚本假设删除/添加一个类,但由于某种原因它不起作用。

我在这个网址上对它进行了测试,这里工作得很好 http://rubenkoops.nl/script_library/cms/content/01-home/nav_hide_on_scroll_html_preview/

出于某种原因,它正在努力研究这个网址 http://18493.hosts.ma-cloud.nl/

我觉得我错过了一些非常愚蠢的东西,有人能想出来吗?

<style type="text/css">

    header {
        background: #f5b335;
        height: 40px;
        position: fixed;
        top: 0;
        left: 0;
        transition: top 0.2s ease-in-out;
        width: 100%;
    }

    .nav-up {
        top: -40px;
    }
  </style>

<script type='text/javascript'>//<![CDATA[
    $(function(){
    // Hide Header on on scroll down
    var didScroll;
    var lastScrollTop = 0;
    var delta = 5;
    var navbarHeight = $('header').outerHeight();

    $(window).scroll(function(event){
        didScroll = true;
    });

    setInterval(function() {
        if (didScroll) {
            hasScrolled();
            didScroll = false;
        }
    }, 250);

    function hasScrolled() {
        var st = $(this).scrollTop();

        // Make sure they scroll more than delta
        if(Math.abs(lastScrollTop - st) <= delta)
            return;

        // If they scrolled down and are past the navbar, add class .nav-up.
        // This is necessary so you never see what is "behind" the navbar.
        if (st > lastScrollTop && st > navbarHeight){
            // Scroll Down
            $('header').removeClass('nav-down').addClass('nav-up');
        } else {
            // Scroll Up
            if(st + $(window).height() < $(document).height()) {
                $('header').removeClass('nav-up').addClass('nav-down');
            }
        }

        lastScrollTop = st;
    }
    });//]]> 

</script>

<header class="nav-down">
    Dit is het menu
</header>

1 个答案:

答案 0 :(得分:2)

问题是脚本需要$("header")元素AKA:

<header></header>

但你有

<div id="header"></div>

所以你在逻辑上有两个解决方案。

  1. 将脚本更改为$("#header")
  2. 或使用<header>元素