JSFiddle - React, Tailwind, and code Playground

HTML

<div><nav></nav></div>
<div class="white"><nav></nav></div>
<div><nav></nav></div>
<div class="white"><nav></nav></div>
<div><nav></nav></div>
<div class="white"><nav></nav></div>
<nav class="white"><nav></nav></nav>

CSS

body,html {
    height:100%;
}
div {
    height:100%;
    background:#000;
    position:relative;
    z-index:10;
    overflow:hidden;
}

div.white {
    background:#c8c8c8;
    z-index:12;
    height:150%;
}

nav {
    left:45px;
    position:absolute;
    width:150px;
    height:150px;
    background:red;
    top:0;
    z-index:11;
}

div.white nav {
    background:#00fff0;
    left:90px;
    z-index:13;
}

JavaScript

var viewportHeight = $(window).height();
$('div').each(function(){
    var offset = $(this).offset().top;
    var nav = $(this).find('nav');
    var navheight = 200;
    var parentheight = $(this).height();
    var margin = (viewportHeight-navheight)/2;
    $(window).scroll(function() {
        nav.css('top', $(this).scrollTop()-offset+margin + "px");	   
    });	 	
});