【发布时间】:2013-04-26 13:40:13
【问题描述】:
我的页面包含四个部分,每个部分都设置为 100% 高度和不同的背景颜色。在最顶部,我有一个固定的菜单。我希望菜单根据用户当前所在的部分更改其背景颜色,以便与背景更好地融合。
到目前为止,我已经设法让菜单的背景颜色在输入投资组合时发生变化,但这并不多,我被卡住了。当用户滚动回到家时,它必须再次改变它的颜色,向前滚动到大约等等。另外,我希望它是动画的,但我不知道如何将 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');
}
});
});
【问题讨论】:
标签: jquery class scroll jquery-animate scrollbar