所以我基本上從另一個問題的一些代碼複製滾動條上的顏色更改的導航欄。這是它:Navbar改變滾動顏色,這jQuery如何工作?
$(document).ready(function(){
var scroll_start = 0;
var startchange = $('#startchange');
var offset = startchange.offset();
if (startchange.length){
$(document).scroll(function() {
scroll_start = $(this).scrollTop();
if(scroll_start > offset.top) {
$(".navbar-default").css('background-color', '#f0f0f0');
} else {
$('.navbar-default').css('background-color', 'transparent');
}
});
}
});
這一切都運行良好(有必要的id /類改變ofcourse),但我想知道它是如何工作,因爲我不知道。我知道這段代碼基本上是說在屏幕頂部滾動到#startchange的頂部後,更改導航欄的顏色。但是,這是真的,我不知道所有的補償和ScrtollTop正在做什麼。顯然,即時通訊相當新的JS/jQuery。提前致謝。
感謝您的回答,但如果我想在功能發生時更改,那該怎麼辦?在這段代碼中,當屏幕的頂部滾動到#startchange的頂部時,css會發生變化,但是如果我想在滾動到#startchange的底部之後更改它,那該怎麼辦?沒有offset.bottom的權利? –
不,但還有另一個函數height():獲取m:atched元素集合中第一個元素的當前計算高度。 通過它可以玩一個元素的底部偏移值。只需將組件的高度添加到OffsetlTop的值(offset.top + component.height) 請點擊此處我回答了一些與此有關的其他JQuery請求,或許您可以看到一些示例。 http://stackoverflow.com/a/43403139/7733724 – Sam
你需要記住,JQuery不提供特定場景的一般方法,但給我們提供了DOM DOM'Domination'(在其他之間)的工具。什麼意思你通常會發現一些有用的函數或函數組合,可以讓你根據每個場景/情況爲每個DOM元素執行所需的操作。大多數JQuery表達式都包含多個函數。用$()開始是一個JQuery函數,它讓我們創建一個快速的getElementbyId/getElementByClass JS函數。首先要了解這些工具,首先要了解這些語法,然後瞭解可用的功能和練習 – Sam