JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<div class="header">
header
</div>
<div class="section" id="block1">
section 1 <!-- Добавляем к header класс blue -->
</div>
<div class="section" id="block2">
section 2 <!-- Добавляем к header класс red -->
</div>
<div class="section" id="block3">
section 3 <!-- Добавляем к header класс yellow -->
</div>

CSS

.header{
  background: #000;
  box-sizing: border-box;
  color: #fff;
  font-size: 20px;
  height: 40px;
  left: 0;
  position: fixed;
  text-align: center;
  top: 0;
  vertical-align: middle;
  width: 100%;
}
.blue{background: blue;}
.red{background: red;}
.yellow{background: yellow;}
.section{
  background: #ccc;
  border: 5px #333 solid;
  box-sizing: border-box;
  color: #000;
  font-size: 30px;
  height: 640px;
  padding-top: 80px;
  text-align: center;
  vertical-align: middle;
  width: 100%;
}
#block2{
    background: #fff;
  height: 940px;
}
#block2{
    background: green;
    color: #fff;
  height: 840px;
}

JavaScript

var winHeight = $(window).height();
var target1 = $('#block1').offset().top;
var target2 = $('#block2').offset().top;
var target3 = $('#block3').offset().top;

$(window).scroll(function(){
  var winScrollTop = $(this).scrollTop();
  
  if(winScrollTop > target1 - winHeight){
$(".header").css({"background":"#000","color":"#fff"})
  } 
  if(winScrollTop > target2 - winHeight/2){
$(".header").css({"background":"#03A9F4","color":"#FF5722"})
  }
  if(winScrollTop > target3 - winHeight/2){
$(".header").css({"background":"#FFEB3B","color":"#009688"})
  }  
});