私は基本的に、スクロール時に色を変えるナビゲーションバー用の別の質問のコードをいくつかコピーしました。これはそれです: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の上をスクロールした後、navbarの色を変更すると言っていることを理解しています。しかし、それは本当に、すべてのオフセットとscrtollTopが何をしているのか分かりません。明らかに、私はJS/jQueryをかなり新しくしました。前もって感謝します。
お返事ありがとうございますが、関数が発生したときに変更したい場合はどうなりますか?このコードでは、画面の上端が#startchangeの上をスクロールするときにCSSが変更されますが、#startchangeのボトルトンをスクロールした後に変更したい場合はどうなりますか?オフセットはありません。右下? –
いいえ、他の関数height()があります:m:atched要素のセットの最初の要素の現在の計算高さを取得します。 要素の下位オフセットの値を変数に取り入れるために再生することができます。コンポーネントの高さをOffsetlTop(offset.top + component.height)の値に加算するだけです。 ここをクリックしてください。他のJQueryリクエストに少しお答えしましたが、いくつかの例があります。 http://stackoverflow.com/a/43403139/7733724 – Sam
JQueryは特定のシナリオのための一般的な方法を提供するのではなく、(他の人との間に)DOM全体の支配のためのツールを提供していることに留意する必要があります。あなたは通常、すべてのシナリオ/状況のためにすべてのDOM要素で必要なことを行うための便利な関数や関数の組み合わせを見つけるでしょう。ほとんどのJQuery式は1つ以上の関数を組み合わせています。$()はJQuery関数ですが、早くgetElementbyId/getElementByClass JS関数を作っています。重要なのは、最初に構文を理解してから、使用可能な関数と実践を知ってこれらのツールを知ることです。 – Sam