Как менять оформление блока при прохождении блоков?
var $nav = $(".my_menu");
var sect1 = $('#section1').height();
$( window ).scroll(function() {
if ($(this).scrollTop() > sect1) {
        $nav.css('background','black'); //что угодно 
      }
});
по такому же принципу для любого блока. Т.е. Как только проскраливаешься до высоты этого блока - че-то там меняется.
Ну так банально высчитывайте высоту блоков и сравнивайте с текущей прокруткой. Для сравнения можно погуглить как делается infinity scroll - логика таже.