いつもお世話になっております。
現在、jQueryとcssを使ってスクロールをした時に、ふわっと表示させるアニメーションの実装を行っています。

実装自体は出来ているのですが、スクロールをしている途中に、スクロールが止まってしまう事象にあってしまい困っております。
下記が実装のコードです。

css

.c-fadein {
  opacity : 0;
  transition: transform 0.5s, opacity 0.5s;
  transform: translateY(30px);
  will-change: transform;

  &.c-scrollin {
    opacity : 1;
    transform: translateY(0);
  }
}

js

window.addEventListener('DOMContentLoaded', function () {
  scrollIn();
});

function scrollIn(){
  scrollInEvent();
  var timer = false;
  $(window).scroll( function(e){
    if(timer !== false){
      clearTimeout(timer);
    }
    timer = setTimeout(function(){
      scrollInEvent();
    }, 50);
  });
}

function scrollInEvent(){
  var distance = 200;
  $('.c-fadein').each(function(){
    var elemPos = $(this).offset().top;
    var scroll = $(window).scrollTop();
    var windowHeight = $(window).height();
    if (scroll > elemPos - windowHeight + distance){
      $(this).addClass('c-scrollin');
    }else {
      $(this).removeClass('c-scrollin');
    }
  });
}

希望通りの動作にはなっているのですが、添付の画像のようにスクロールを行ったり来たりさせていると、急にスクロールバーが伸びて、スクロールが止まってしまいます。

スクロールバーが本来は短い
スクロールバーが長くなってしまう

will-change を設定してみると良いとか、

-webkit-backface-visibility:hidden;,backface-visibility:hidden; を設定してみたり、 translateYtranslate3d にしてみたりと、いろいろと試してはみたのですが、どうしても解決が出来ません。

どなたか、同じような事象にあわれた方がいらっしゃいましたら、お知恵を拝借頂けますと幸いでございます。
よろしくお願いいたします。