2014-10-18 59 views
0

我有一個類「sticky」被添加到div,當它到達頁面頂部時,將它的css位置固定。Sticky Header,達到一個點

當用戶到達該部分頁面的底部時,我想要刪除粘性類。

該標題僅與頁面的一部分相關。

有關如何將其添加到我當前的代碼的任何想法?

<script> 
    $(document).ready(function() { 
     var stickyNavTop = $('.header').offset().top; 

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

      if (scrollTop > stickyNavTop) { 
       $('.header').addClass('sticky'); 
      } else { 
       $('.header').removeClass('sticky'); 
      } 
     }; 

     stickyNav(); 

     $(window).scroll(function() { 
      stickyNav(); 
     }); 
    }); 
</script> 

回答

1

JS Fiddle

使用這個功能來計算,如果滾動達到

我已經添加paddingcontainer頁面結束的時候,header變化fixed所以document的高度保持不變

document height - window height它會給你val UE在滾動到達最後一個領域

function scrolling() { 
    doc = $(document).height() 
    win = $(window).height() 
    height = doc - win 
    if ($(window).scrollTop() >= height) { 
     $('.header').removeClass('sticky'); 
     $('.container').css('padding-top', '0'); 
    } 
} 

編輯

改變了功能找到,如果滾動進來的div和顯示隱藏的範圍

如果滾動進來藍格的範圍它會得到正常,否則它會得到fixed

JS Fiddle

function scrolling() { 
    doc = $(document).height() 
    hidingtop = $('.hiding').offset().top; 
    hidingbottom = $('.hiding').position().top + $('.hiding').outerHeight(true) 
    if ($(window).scrollTop() > hidingtop && $(window).scrollTop() < hidingbottom) { 
     $('.header').removeClass('sticky'); 
     $('.container').css('padding-top', '0'); 
    } 
} 
+0

你的代碼幫助我處理了另一個問題(下面的內容在添加粘性類時跳起來了)。但是,這仍然不利於我在這裏問的問題;也許我做錯了什麼。請注意,所有這些代碼都來自使用angularjs路由功能加載到index.html中的部分頁面。所以當用戶滾動顯示部分視圖的那個div時,我想讓那個粘性類去掉。我很抱歉,解釋起來太複雜了,但一旦你看到它就是如此簡單的事情 – 2014-10-18 17:48:44

+0

編輯答案@SevGevorkyan – 2014-10-19 12:51:21