私のページには 4 つのセクションがあり、それぞれが異なる背景色で高さ 100% に設定されています。一番上に固定メニューがあります。ユーザーが現在どのセクションにいるかに応じてメニューの背景色を変更して、背景との調和を高めたいと考えています。
これまでのところ、ポートフォリオが入力されたときにメニューの背景色を変更することはできましたが、それほど多くはなく、立ち往生しています。ユーザーがスクロールしてホームに戻ったり、前後にスクロールしたりすると、色を再度変更する必要があります。また、アニメーションさせたいのですが、animate()とaddClass()の使い方がわかりません。私は過去2日間試みてきましたが、まったく成功しませんでした。
私を悩ませているもう 1 つのことは、メニュー要素もスクロール位置に応答する必要があることです。たとえば、ユーザーがホームからポートフォリオにスクロールした場合、アクティブなクラスをポートフォリオに適用し、ホームから削除する必要があります。あなたがアイデアを得たことを願っています。
これまでのところ、私のコードは次のようになります。
<div class="menu">
<div id="menu-center">
<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a class="inactive" href="#portfolio">Portfolio</a></li>
<li><a class="inactive" href="#about">About</a></li>
<li><a class="inactive" href="#contact">Contact</a></li>
</ul>
</div>
</div>
<div id="home"></div>
<div id="portfolio"></div>
<div id="about"></div>
<div id="contact"></div>
理由はわかりませんが、投稿全体を壊さずに css をここに投稿することはできないので、jsFiddleにアクセスしてすべてをまとめて確認してください。
$(document).ready(function () {
var menu = $('.menu');
var portfolio_position = $('#portfolio').offset().top;
var about_position = $('#about').offset().top;
var contact_position = $('#contact').offset().top;
$(window).scroll(function () {
var scroll = $(this).scrollTop();
if (scroll >= portfolio_position) {
menu.removeClass('menu').addClass('menu-light');
}
});
});