クラスが現在ビューポートに表示されているかどうかを検出しようとしています。私はこれを使用していますanswer(私の質問に返信することはできません)。元のポストはクラスの代わりにIDを使用していましたが、私は.white-section
というクラスを検出するように変更しました。クラスのある要素がビューポートに表示されているかどうかをチェックします。
最初は.white-section
が検出されましたが、どのようにしてそれらを検出してビューポートに移動することができますか?
$('#content').scroll(function() {
var top_of_element = $(".white-section").offset().top;
var bottom_of_element = $(".white-section").offset().top + $(".white-section").outerHeight();
var bottom_of_screen = $(window).scrollTop() + $(window).height();
var top_of_screen = $(window).scrollTop();
if((bottom_of_screen > top_of_element) && (top_of_screen < bottom_of_element)){
$('.header-container').addClass('.alt-menu');
}
else {
$('.header-container').removeClass('.alt-menu');
}
});
これは、HTMLを設置している方法です:
<div class="header-container"></div>
<div class="white-section"></div>
<div class="white-section"></div>
<div class="white-section"></div>
<div class="white-section"></div>
<div class="white-section"></div>
?私の最初の考えは、これは白い部分の上にそれぞれを関与させるということです。 – Taplar
@Taplar申し訳ありませんが、私はそのビットで明確にすべきでした。白いセクションにスクロールすると、ヘッダコンテナにクラスが追加され、白いセクションにないときにクラスが削除されます – Rob
したがって、ヘッダコンテナは白いセクションの子ですか? – Taplar