<!DOCTYPE html>
<html>
  <head>
    <style>
      #container {
        width: 300px;
        height: 300px;
        border: 3px solid black;
        overflow: scroll;
      }

      .card {
        width: 100px;
        height: 100px;
        margin: 5px;
      }

      .fixed {
        position: fixed;
        background: blue;
        z-index: 1;
        left: 80px;
        top: 80px;
      }

      .scrolled {
        position: relative;
        background: green;
      }
    </style>
    <script>
      if (window.internals) {
          window.internals.settings.setPreferCompositingToLCDTextEnabled(true);
      }

      function doTest() {
        var container = document.getElementById("container");
        container.scrollTop = container.scrollHeight;
      }

      window.onload = doTest;
    </script>
  </head>
  <body>
    <div id="container">
      <div class="fixed card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
      <div class="scrolled card"></div>
    </div>
  </body>
</html>
