我的页面包含四个部分,每个部分设置为 100% 高度,背景颜色不同。在最顶部,我有一个固定的菜单。我希望菜单根据用户当前所在的部分更改其背景颜色,以便与背景更好地融合。
到目前为止,我已经设法使菜单的 bg 颜色在输入投资组合时发生变化,但这并不多,我被卡住了。当用户滚动回到家时,它必须再次改变它的颜色,向前滚动到大约等等。另外,我希望它是动画的,但我不知道如何将 animate() 与 addClass() 一起使用。过去两天我一直在尝试,但完全没有成功。
折磨我的另一件事是菜单元素也应该响应滚动位置。例如,如果用户从 Home 滚动到 Portfolio,则应将活动类应用于 Portfolio 并从 Home 中删除。希望你明白了。
到目前为止,我的代码如下所示:
<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');
}
});
});