<style>
body {
  margin: 0;
}

.scroller {
  will-change: transform;

  overflow: auto;
  width: 200px;
  height: 500px;
  outline: 2px solid black;
}

.container {
  width: 200px;
  height: 1000px;
}

.sticky {
  will-change: transform;

  position: sticky;
  width: 200px;
  top: 0;
}

.first {
  height: 500px;
  background: red;
}

.second {
  height: 400px;
  background: green;
}

.third {
  height: 300px;
  background: blue;
  top: 100px;
}

.fourth {
  height: 200px;
  background: pink;
  top: 100px;
}

.fifth {
  height: 100px;
  background: yellow;
}
</style>

<script>
if (window.testRunner)
  testRunner.waitUntilDone();

function finishTest() {
  document.querySelector('.scroller').scrollTop = 400;
  if (window.testRunner)
    testRunner.notifyDone();
}

window.addEventListener('load', function() {
  requestAnimationFrame(function() {
    requestAnimationFrame(finishTest);
  });
});
</script>

<div class="scroller">
  <div class="container">
    <div class="first sticky">
      <div class="second sticky">
        <div class="third sticky">
          <div class="fourth sticky">
            <div class="fifth sticky"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
