【问题标题】:Fixed Nav Bar, Broken Javascript修复导航栏,损坏的 Javascript
【发布时间】:2015-04-05 09:47:44
【问题描述】:

我目前正在开发一个工作网站,并且正在尝试让滚动/固定导航栏正常工作。我要离开this tutorial,但我不能像他的预览那样让我的淡入/淡出。我已经尝试了所有我能想到的,除了把我的电脑扔到墙上。我不太懂 Javascript,所以这只会增加挫败感。

我发布了代码 here 的预览,并在下面列出了代码的 javascript 部分。任何和所有的帮助将不胜感激。

 $(document).ready(function(){
  $('#navigation a, #fixedbar a').on('click', function(e) {
    e.preventDefault();
  });

  $(window).on('scroll',function() {
    var scrolltop = $(this).scrollTop();

    if(scrolltop >= 110) {
      $('#fixedbar').fadeIn(100);
    }

    else if(scrolltop <= 110) {
      $('#fixedbar').fadeOut(100);
    }
  });
});

@charset "UTF-8";
/* CSS Document */

/*BASICS*/
*{
    padding: 0px;
    margin: 0px;
}
body {
    margin: 0px !important  ;
}
html{
 /* background-image: url(parts/bg5.png);
    background-repeat: repeat;
    background-attachment: fixed; */
    background-color: #D1DEF2;
}
header, section, footer, aside, nav, main, article, figure {
    display: block; 
}

/*HEADER*/
header {
    width: 100%;
    height: 110px;
    position: absolute;
    background-color: #fff;
    margin: -110px auto 0px;
    z-index: 50;
}
    header #header-content{
        width: 1024px;
        margin: auto;
    }
    header #headlogo{
        width: 306px;
        height: 81px;
        background-image:url(parts/header/logo.png);
        background-position: center;
        margin: 21px 0px 25px 32px;
        background-repeat: no-repeat;
        -webkit-transition: background-position 1s ease;
                transition: background-position 1s ease;
    }

/* NAV */
nav{
    margin: 10px auto 0px;
    width: 100%;
    height: 64px;
    background-color: #ffffff;
    border-bottom: 1px solid #445476;
    box-shadow-bottom: 0px -1px 5px #212B44;
    -webkit-transition: all 1s ease;
            transition: all 1s ease;
    postition: absolute;
    z-index: 100;
    margin-top: 110px;
}
    nav .nav-content{
        width: 1024px;
        margin: 0px auto;
    }
    nav .navmain{
        margin: 30px 154px 0px;
        position: absolute;
    }
    #navigation{
        z-index: 10;
    }
    nav #end-leftnav{
        margin-right: 36px;
    }
    nav #start-rightnav{
        margin-left: 123px;
    }
    nav ul{
        list-style-type: none;
        text-decoration: none;
        font-family: "Cabin Condensed", sans-serif;
        font-weight: 700;
        color: #585858;
    }
    nav li{
        float: left;
    }
    nav .navspot{
        padding: 0px 5px 3px;
        color: inherit;
        margin: 0px 17px;
        color: #585858;
    }
    nav .navspot:hover{
        border-bottom: 3px solid #445476;
    }
    nav .navsoc{
        margin-left: 27px;
    }
    nav .navsoc img{
        float: left;
        margin: 0px 3px 10px;
        opacity: 1;
        transition: opacity 1s;
        -webkit-transition: opacity 1s; /* For Safari 3.1 to 6.0 */
    }
    nav .navsoc img:hover{
        border-bottom: 0px;
        opacity: .6;
        transition: opacity 1s;
        -webkit-transition: opacity 1s; /* For Safari 3.1 to 6.0 */
    }
    nav #columncircle{
        margin: -30px auto 0px;
        float: left;
        clear: both;
        position: absolute;
    /*  border-radius: 100%;
        box-shadow: 2px 2px 1px #333333;
        background-color: #445476; */
    }

    /* FIXED NAV EXCLUSIVE */
    #fixedbar { 
        display: none;
        position: fixed;
        width: 100%;
        height: 65px;
        z-index: 100;
        margin-top: -110px;
    }
    #fixednav { 
        display: block;
        margin: -500px 0px 0px;
        padding: 0px auto;
        opacity: 1;
        width: 100%;
    }
    nav .navfixed{
        margin: 35px 154px 0px;
    }

#filler{
    margin-top: 1000px;
    z-index: 1;
}

【问题讨论】:

    标签: javascript jquery html fixed nav


    【解决方案1】:

    您的fadeIn / fadeOut 功能非常快。

    改变它的速度

     $(document).ready(function(){
      $('#navigation a, #fixedbar a').on('click', function(e) {
        e.preventDefault();
      });
    
      $(window).on('scroll',function() {
        var scrolltop = $(this).scrollTop();
    
        if(scrolltop >= 110) {
          $('#fixedbar').fadeIn(250);
        }
    
        else if(scrolltop <= 110) {
          $('#fixedbar').fadeOut(250);
        }
      });
    });
    

    【讨论】:

    • 我把速度改成了250,但是还是闪进闪出,而不是淡出。不过谢谢。 :)
    • 尝试将其更改为 'slow' 而不是 250
    • 我将其更改为slow,它完全摆脱了浮动导航。
    • 你能发布你的css吗?
    • 当然。编辑了第一篇文章。
    【解决方案2】:
    #navigation
        left: 0
        top: 0
        z-index: 10
        position: fixed
    
    <body style="margin-top:(height of the navigation bar)px">
    

    【讨论】:

    • 这没有帮助。它只是将标题推到页面底部并完全踢了导航。 ://
    • 这对淡入和淡出不起作用,但它会使导航栏变得粘滞。同样,如果您想淡入和淡出,您可以使用 css 动画属性通过将不透明度从 100 设置为 0 来实现,反之亦然
    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2018-10-07
    • 2023-03-09
    • 2012-03-15
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多