infinite-scroll-event.tentative.html (1352B)
1 <!DOCTYPE html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> 5 <link rel="author" title="Mozilla" href="https://mozilla.org"> 6 <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1561450"> 7 <link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring/#suppression-triggers"> 8 <style> 9 body { margin: 0 } 10 .content { 11 height: 45vh; 12 background: lightblue; 13 } 14 </style> 15 <div class="content"></div> 16 <div id="hidden" style="display: none; height: 200px"></div> 17 <div class="content"></div> 18 <div class="content"></div> 19 <div class="content"></div> 20 <script> 21 let count = 0; 22 const t = async_test("Scroll adjustments don't keep happening with 0-length adjustments triggered by a single scroll operation"); 23 onscroll = t.step_func(function() { 24 ++count; 25 hidden.style.display = "block"; 26 hidden.offsetTop; 27 hidden.style.display = "none"; 28 let currentCount = count; 29 requestAnimationFrame(t.step_func(function() { 30 requestAnimationFrame(t.step_func(function() { 31 if (currentCount == count) { 32 t.done(); 33 } 34 })); 35 })); 36 }); 37 38 window.onload = t.step_func(function() { 39 window.scrollTo(0, document.documentElement.scrollHeight); 40 window.scrollBy(0, -200); 41 }); 42 </script>