2015-05-07 30 views
0

嗨我對JavaScript很新,我只是試圖在到達特定元素/類而不是使用距窗口頂部的距離後淡入導航欄。.JS在滾動瀏覽元素後在導航條中淡入

// Navigation bar - show on scroll 
$(document).ready(function(){ 

    // hide .navbar first 
    $(".navbar").hide(); 

    // fade in .navbar 
    $(function() { 
     $(window).scroll(function() { 
      // set distance user needs to scroll before we fadeIn navbar 
      if ($(this).scrollTop() > 200) { 
       $('.navbar').fadeIn(); 
      } else { 
       $('.navbar').fadeOut(); 
      } 
     }); 
    }); 

}); 

回答

0

您可以使用.offset()來獲取相對於文檔的元素位置。

所以(你window.scroll功能之外做這樣的事情。

var offset = $('.myTriggerClass').offset().top; 

然後改變你的條件

if ($(this).scrollTop() > offset) 

,所以你最終會與

$(".navbar").hide(); 

// set distance user needs to scroll before we fadeIn navbar 
var offset = $('.myTriggerClass').offset().top; 

// fade in .navbar 
$(function() { 
    $(window).scroll(function() { 
     if ($(this).scrollTop() > offset) { 
      $('.navbar').fadeIn(); 
     } else { 
      $('.navbar').fadeOut(); 
     } 
    }); 
}); 
+0

我這工作,但我不得不刪除overflow-x:hidden;從html,body。有沒有辦法做到這一點,而不必刪除overflow-x:hidden? – ArcherDidot

+0

我讀過overflow-x hidden取消.scrollTop – ArcherDidot

+0

如果觸發元素offsetParent是body,那麼你可以嘗試使用.position()。top而不是.offset()。top –

相關問題