2015-04-15 60 views
10

設置引導導航欄透明度我使用一個名爲custom.css二次並祝覆蓋引導代碼,我想知道如何創建一個只激活代碼時,我的網站的訪客是不是在最頂端的頁面。上滾動

直到現在我創建使用由自舉提供的默認代碼的透明導航欄。我唯一要做的就是設置它執行:background-color: #color當訪問者向下滾動時。

例子:https://www.lyft.com/

當我在頁面的頂部,導航欄是透明的,但是當我向下滾動變得不透明。

+0

歡迎SO! ':''到目前爲止您嘗試了什麼?你能發佈你的代碼嗎? Lyft使用javascript來實現我相信的效果。 –

+0

我複製了.navbar-default的原始引導程序(如果您需要它,我可以提供給您)並修改顏色。在HTML中,我將該欄設置爲固定(使用navbar-fixed-top)。除了尋找可能有用的東西之外,我沒有做過任何其他的事情......我會研究lyft,也許我會找到一些有用的東西。編輯:當我用「看着lyft」我的意思是看着他們的CSS。 – Hiperkie

+0

Lyft使用'angular-js'並在用戶滾動到頁面上的某個點時嚮導航欄中添加類「.opaque」。 –

回答

26

好吧,你需要下面的代碼來實現這樣的效果:(我將使用jQuery,因爲它是引導支持的語言)。


的jQuery:

/** 
* Listen to scroll to change header opacity class 
*/ 
function checkScroll(){ 
    var startY = $('.navbar').height() * 2; //The point where the navbar changes in px 

    if($(window).scrollTop() > startY){ 
     $('.navbar').addClass("scrolled"); 
    }else{ 
     $('.navbar').removeClass("scrolled"); 
    } 
} 

if($('.navbar').length > 0){ 
    $(window).on("scroll load resize", function(){ 
     checkScroll(); 
    }); 
} 

您還可以使用ScrollSpy做到這一點。


和你的CSS(例如):

/* Add the below transitions to allow a smooth color change similar to lyft */ 
.navbar { 
    -webkit-transition: all 0.6s ease-out; 
    -moz-transition: all 0.6s ease-out; 
    -o-transition: all 0.6s ease-out; 
    -ms-transition: all 0.6s ease-out; 
    transition: all 0.6s ease-out; 
} 

.navbar.scrolled { 
    background: rgb(68, 68, 68); /* IE */ 
    background: rgba(0, 0, 0, 0.78); /* NON-IE */ 
} 
+0

我無法啓動它。我認爲,因爲酒吧已經固定在最前面。我將修改腳本以觀看另一個課程。我認爲這將解決問題。 – Hiperkie

+0

我解決了!非常感謝你! – Hiperkie

+0

@Hiperkie不客氣 –