JSFiddle - React, Tailwind, and code Playground
HTML
<div id="right-menu">
<div class="custom">
<ul class="sp-module" data-uk-scrollspy-nav="{closest: 'li', smoothscroll:{offset: 0}}" style="background:red">
<li><a href="#section1">section1</a></li>
<li><a href="#section2">section2</a></li>
<li><a href="#section3">section3</a></li>
<li><a href="#section4">section4</a></li>
<li><a href="#section5">section5</a></li>
<li><a href="#section6">section6</a></li>
<li><a href="#section7">section7</a></li>
<li><a href="#section8">section8</a></li>
</ul>
</div>
</div>
<div class="page-content">
<section id="section1" class="sppb-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
</p>
</section>
<section id="section2" class="sppb-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
</p>
</section>
<section id="section3" class="sppb-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
</p>
</section>
<section id="section4" class="sppb-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
</p>
</section>
<section id="section5" class="sppb-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor...
CSS
#right-menu {
position: absolute;
float: right;
margin-left: 15px;
width: 100%;
}
.custom {
right: 20px;
float: right;
position: fixed;
top: 50%;
transform: translateY(-50%);
}
.sp-module >li >a {
color: #fff;
display: block;
padding: 2px 0;
-webkit-transition: 300ms;
transition: 300ms;
font-weight: bold;
}
.sp-module.black >li >a {
color: #000;
}
section {
z-index: 1;
height: 100vh;
width: 100%;
height: 100vh;
bottom: 0;
}
.sppb-section {
padding-top: 25%;
}
.sppb-section p {
width: 80%;
margin-left: 15px;
}
#section1,
#section3,
#section5,
#section7 {
background-color: #000;
color: #fff;
}
#section2,
#section4,
#section6,
#section8 {
background-color: #fff;
}
JavaScript
window.addEventListener("DOMContentLoaded", function() {
var nav = document.querySelector(".sp-module");
var element = document.querySelector("section");
document.addEventListener("scroll", function() {
var progress = .5 + window.pageYOffset / element.offsetHeight | 0;
nav.classList[progress % 2 ? "add" : "remove"]("black")
})
});