Javascript: Scrollen Sie beim Scrollen von einem Div zum anderen?

Ich möchte in der Lage sein, beim Scrollen nach unten direkt zum nächsten Div zu springen und beim Scrollen nach oben direkt zum vorherigen Div zu springen. Hier sind meine Dateien mit einem Beispiel mit zwei Divs:

$(document).ready(function() {
  var lastScrollTop = 0;

  function findPos(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
      do {
        curtop += obj.offsetTop;
      } while (obj = obj.offsetParent);
      return [curtop];
    }
  }

  $(window).scroll(function(event) {
    var st = $(this).scrollTop();
    if (st > lastScrollTop) {
      $('html, body').animate({
        scrollTop: $("#space_od").offset().top
      }, 500);
    } else {
      $('html, body').animate({
        scrollTop: $("#black_hole").offset().top
      }, 500);
    }
    lastScrollTop = st;
  });
});
body {
  padding: 0;
  margin: 0;
}

#black_hole {
  background-image: url("black_hole.jpg");
  background-position: center;
  display: block;
  height: 100vh;
  width: 100%;
}

#space_od {
  background-image: url("2001.png");
  background-position: center;
  display: block;
  height: 100vh;
  width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="black_hole">
</div>
<div id="space_od">
</div>

Es scheint gut zu funktionieren, wenn Sie das erste Mal nach unten scrollen, aber nicht, wenn Sie nach oben scrollen. Es scheint sich ein paar Pixel zu bewegen und dann anzuhalten. Irgendwelche Ideen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage