| <!DOCTYPE html> |
| <style> |
| body { |
| margin: 0px; |
| } |
| |
| .scroller { |
| overflow: scroll; |
| width: 200px; |
| height: 600px; |
| } |
| |
| .composited { |
| will-change: transform; |
| } |
| |
| .box { |
| background: rgba(0, 255, 0, 0.9); |
| position: sticky; |
| width: 185px; |
| height: 50px; |
| top: 0px; |
| } |
| |
| .indicator { |
| position: absolute; |
| width: 185px; |
| height: 50px; |
| top: 20px; |
| background: red; /* covered up by .box when working */ |
| } |
| |
| .container { |
| width: 100%; |
| height: 1000px; |
| background: grey; |
| } |
| </style> |
| |
| <div id="scroller" class="scroller"> |
| <div class="composited container"> |
| <div class="indicator"></div> |
| <div class="box"></div> |
| </div> |
| </div> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.waitUntilDone() |
| |
| function doTest() { |
| let scroller = document.getElementById('scroller'); |
| window.requestAnimationFrame(function() { |
| scroller.scrollTop = 20; |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }); |
| } |
| |
| window.addEventListener('load', function() { |
| window.requestAnimationFrame(function() { |
| window.requestAnimationFrame(doTest); |
| }) |
| }); |
| </script> |
| |