JSFiddle - React, Tailwind, and code Playground

HTML

<h3 class="post_header">Заголовок</h3><p>Товарищи! начало повседневной работы по формированию позиции в значительной степени обуславливает создание направлений прогрессивного развития. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки модели развития. Разнообразный и богатый опыт постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке направлений прогрессивного развития. Равным образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития.</p>
<h3 class="post_header">Заголовок</h3><p>Товарищи! постоянный количественный рост и сфера нашей активности играет важную роль в формировании системы обучения кадров, соответствует насущным потребностям. Задача организации, в особенности же консультация с широким активом позволяет выполнять важные задания по разработке позиций, занимаемых участниками в отношении поставленных задач. Повседневная практика показывает, что сложившаяся структура организации позволяет оценить значение соответствующий условий активизации. Разнообразный и богатый опыт реализация намеченных плановых заданий влечет за собой процесс внедрения и модернизации систем массового участия. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке модели развития. Не следует, однако забывать, что сложившаяся структура организации позволяет выполнять важные задания по разработке систем массового участия.</p>
<h3 class="post_header">Заголовок</h3><p>Повседневная практика показывает, что дальнейшее развитие различных форм деятельности играет важную роль в формировании позиций, занимаемых участниками в отношении поставленных задач. Не следует, однако забывать, что консультация с широким активом требуют определения и уточнения форм развития. Таким образом укрепление и развитие...

CSS

h3 {margin: 18px 0 0;}
p {padding: 4px; border: 1px solid; margin: 2px 2px 10px;}
#post_nav {position: fixed; right: 5px; top: 150px; background: #fff;}
#post_nav span {display: block; font-size: 25px; cursor: pointer; padding: 4px 6px;
-ms-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none; user-select: none;}
#post_nav span:hover {background: #ccf;}

JavaScript

function postScroll (id) {
  var posts = $('.post_header');
  for (var i = 0; i < posts.length; i++) {
      s_top = $("body").scrollTop();
      yes = $(posts[i]).offset().top;
      if(s_top < yes) {
      		if (id == 'post_next') {
      			destination = $(posts[i]).offset().top;
          } else {
          	var post = $(posts[i-2]);
            if (post.length > 0) {
            	destination = post.offset().top;
            }
          }
          $('html,body').animate(
          	{scrollTop: destination},
            100
          );
          return;
      }
  }
}

$(document).on('click', '#post_nav span', function(){
	postScroll($(this).attr('id'));
});

window.onkeydown = function (event) {
  if(event.keyCode == 65) {
    postScroll('post_prev');
  }
  if(event.keyCode == 68) {
    postScroll('post_next');
  }
}