【发布时间】:2016-08-31 05:18:59
【问题描述】:
我的个人网站需要帮助。我想制作一个带有固定顶部导航栏(透明背景)的单页网站。在页面滚动时,菜单元素的颜色必须在具有深色背景的部分(它们具有“.dark-bg”类)上从黑色动态变为白色,并在其他部分返回白色。所有部分的高度均为 100vh(当然,菜单除外)。这是网站的 HTML 主要结构:
<section class="section--menu fixed-header">
<nav class="menu" id="navigation">
<ul class="menu__list pull-md-right">
<li class="menu__item menu__item--current">
<a class="menu__link" data-target="intro-fabio">home</a>
</li>
<li class="menu__item">
<a class="menu__link" data-target="about-fabio">about</a>
</li>
<li class="menu__item">
<a class="menu__link" data-target="skills-fabio">skills</a>
</li>
<li class="menu__item">
<a class="menu__link" data-target="works-fabio">works</a>
</li>
<li class="menu__item">
<a class="menu__link" data-target="contacts-fabio">contacts</a>
</li>
</ul>
</nav>
</section>
<!-- HOME
======================================================== -->
<section id="intro-fabio">
</section>
<!-- ABOUT
======================================================== -->
<section id="about-fabio" class="dark-bg">
</section>
<!-- SKILLS
======================================================== -->
<section id="skills-fabio">
</section>
<!-- WORKS
======================================================== -->
<section id="works-fabio" class="dark-bg">
</section>
<!-- CONTACTS
======================================================== -->
<section id="contacts-fabio">
</section>
我编写了这个 jQuery 脚本,但它似乎只适用于“.dark-bg”类的最后一部分。
$(document).ready(function() {
$(".dark-bg").each(function() {
detectBg( $(this) );
});
function detectBg(sezione) {
$(window).scroll(function() {
var finestra = $(window).scrollTop();
var sezCurr = sezione.offset().top;
var sezNext = sezione.next().offset().top;
if (finestra >= sezCurr && finestra < sezNext) {
$('.menu__link').css("color", "#ebebeb");
}
else {
$('.menu__link').css("color", "#1c1c1c");
}
});
}
});
提前致谢!
【问题讨论】:
-
它只适用于
.dark-bg,因为这是唯一一个由$(".dark-bg").each(function() { detectBg( $(this) ); });调用的类 -
如果一切都固定好了(高度),使用 body 元素上的 jQuery scrollTop() 来确定滚动的位置并点亮正确的菜单...
-
这也可以帮助你:codepen我在这里找到了它:Viewport Height for Full Screen Div?
标签: javascript jquery css