2016-09-16 173 views

回答

2

應該超級簡單@Christian。只需使用jQuery lib中的offset()和scrollTop()函數(如果可以的話)。

$(document).ready(function() { 
    var NavTop = $('.nav').offset().top; 
    var Nav = function() { 
    var scrollTop = $(window).scrollTop(); 
    if (scrollTop > NavTop) { 
     $('.nav').addClass('sticky'); 
    } else { 
     $('.nav').removeClass('sticky'); 
    } 
    }; 

Nav(); 

    $(window).scroll(function() { 
    Nav(); 
    }); 
}); 

關於動畫 - 過渡應該做trick! 詢問您是否需要示例,發佈您的代碼。

1

當您滾動到定義的點時,導航欄會獲得額外的類。例如,從網站您將獲得:

前收縮

#Top_bar { 
    position: absolute; 
    left: 0; 
    top: 61px; 
    width: 100%; 
    z-index: 30; 
    transition: 

收縮後(滾動到某個點):

#Top_bar.is-sticky { 
    position: fixed!important; 
     width: 100%; 
     left: 0; 
     top: -60px; 
     height: 60px; 
     z-index: 701; 
     background: #fff; 
     opacity: .97; 
     filter: alpha(opacity = 97); 
     -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.1); 
     -moz-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.1); 
     box-shadow: 0 2px 5px 0 rgba(0,0,0,0.1); 

} 

你也需要類似這樣的一些jQuery代碼:

$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 

    if (scroll >= 100) { 
     $("#Top_bar").addClass("is-sticky"); 
    } else { 
     $("#Top_bar").removeClass("is-sticky"); 
    } 
});