Team Treehouse导航栏动画

时间:2015-06-27 20:24:41

标签: jquery html css navigation

我正在尝试在homepage上滚动时重现导航栏动画的效果。我理解他们如何在使用Jquery滚动超过某个阈值时添加类。有任何想法吗?如果我尝试使用不透明度设置菜单中的链接动画,我的内容会重叠,如果我使用可见性,它会被取代。

谢谢。

1 个答案:

答案 0 :(得分:2)

使用此代码。

<强>的CSS

ul {
    top: 0;
    left: 0;
    margin: 0;
    width: 80%;
    height: 60px;
    position: fixed;
    padding: 10px 10%;
    background: #eeeeee;
    z-index: 1000 ;/* Stay on other layers*/
}
ul li{
    float: right;
    margin: 20px 0 0 5px;
    display: inline-block;
}
ul li a {
    color: #333;
    padding: 13px 20px;
    border-radius: 5px;
    text-decoration: none;
    border: 2px solid transparent;
    -webkit-transition: all .3s;
    -moz-transition: all .3s;
    -ms-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
}
ul li:first-child a {
    color: #5fcf80;
    padding: 13px 5px;
}
.scroll li a {
    opacity: 0;
}
.scroll li:first-child a {
    opacity: 1;
    padding: 13px 25px;
    border-color: #68cf89;
}
.scroll:hover li a{
    opacity: 1;
}

<强> HTML

<ul>
    <li><a href="#"> Free trial </a></li>
    <li><a href="#"> Sing in </a></li>
    <li><a href="#"> Pricing </a></li>
    <li><a href="#"> Stories </a></li>
    <li><a href="#"> Features </a></li>
</ul>

Jquery有IE问题

var sn = 0;
$(window).scroll(function () {
    var st = $(this).scrollTop();

    if( st > 100 ){

        if( sn > st){

            $('ul').removeClass('scroll');

        }else{

            $('ul').addClass('scroll');

        }

    } else{

        $('ul').removeClass('scroll');

    }
    sn = st;
});

解决了Jquery问题

var sn = 0;
var x;
$(window).scroll(function () {
    var st = $(this).scrollTop();

    if( st > 100 && x != 0 ){

        if( sn > st ){

            $('ul').removeClass('scroll');
            x=0;

        }else{

            $('ul').addClass('scroll');
        }

    }else if( st > 100 && x == 0 ){

        if( sn < st ){

            $('ul').addClass('scroll');
            x=1;

        }else{

            $('ul').removeClass('scroll');
        }

    }
    sn = st;
});