こんにちは私はスクロールのスクロールリンクがページ上の特定のセクションに到達したときに色を変える方法を工夫しています。現時点では、ナビゲーションリンクをクリックするとスクロールアニメーションがページの特定のセクションに移動し、リンクにアクティブなクラスが追加されるように設定されています(赤に変更)。私は、そのセクションがスクロールされたときにアクティブなリンクを赤色に変えるだけです。これは私の現在のマークアップです。ページの位置に応じてナビゲーションリンクの色を変更するには
あなたは、スクロール上のウィンドウの現在の位置を確認する必要が
$("#nav-item-1").click(function() {
$('html, body').animate({
scrollTop: $("#section1").offset().top
}, 2000);
});
$("#nav-item-2").click(function() {
$('html, body').animate({
scrollTop: $("#section2").offset().top
}, 2000);
});
$("#nav-item-3").click(function() {
$('html, body').animate({
scrollTop: $("#section3").offset().top
}, 2000);
});
$("#nav-item-4").click(function() {
$('html, body').animate({
scrollTop: $("#section4").offset().top
}, 2000);
});
$("#nav-item-1").click(function() {
$("a").removeClass('active');
$("#nav-item-1").addClass('active');
});
$("#nav-item-2").click(function() {
$("a").removeClass('active');
$("#nav-item-2").addClass('active');
});
$("#nav-item-3").click(function() {
$("a").removeClass('active');
$("#nav-item-3").addClass('active');
});
$("#nav-item-4").click(function() {
$("a").removeClass('active');
$("#nav-item-4").addClass('active');
});
* {
padding: 0;
margin: 0;
}
.active {
color: red;
}
.container {
width: 800px;
}
a {
text-decoration: none;
color: inherit;
}
section {
padding: 200px 0;
width: 100%;
text-align: center;
font-size: 35px;
}
#section1 {
background: #fafafa;
}
#section2 {
background: #e2e2e2;
}
#section3 {
background: #c9c9c9;
}
#section4 {
background: #d4d4d4;
}
nav {
position: fixed;
text-align: center;
width: 100%;
background: black;
padding: 25px 0;
}
nav ul {
list-style: none;
text-align: center;
}
nav ul li {
display: inline-block;
margin-right: 40px;
color: #fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<nav>
<ul>
<li><a href="#" id="nav-item-1" class="active">section1</a></li>
<li><a href="#" id="nav-item-2">section2</a></li>
<li><a href="#" id="nav-item-3">section3</a></li>
<li><a href="#" id="nav-item-4">section4</a></li>
</ul>
</nav>
</div>
<section id="section1">Section 1</section>
<section id="section2">Section 2</section>
<section id="section3">Section 3</section>
<section id="section4">Section 4</section>
これは、あなたが探しているものはおそらくです:[jQueryの中のテスト要素は、画面の一番上にある場合](http://stackoverflow.com/a/7543724/4204026 )。 –