scroll-behavior-2.html (3103B)
1 <!DOCTYPE HTML> 2 <html class="reftest-wait"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Testcase for bug 1010538, smooth scrolling expected</title> 6 <style type="text/css"> 7 8 html,body { 9 color: black; 10 background-color: white; 11 font-size: 16px; 12 padding: 0; 13 margin: 0; 14 } 15 16 .a_box { 17 position: relative; 18 left: 0px; 19 top: 0px; 20 width: 20px; 21 height: 20px; 22 background: blue; 23 } 24 25 .another_box { 26 position: relative; 27 left: 2000px; 28 top: 2000px; 29 width: 20px; 30 height: 20px; 31 background: green; 32 } 33 34 .scroll_box { 35 width: 50px; 36 height: 50px; 37 overflow: scroll; 38 will-change: scroll-position; 39 } 40 41 #scroll_1, #scroll_2, #scroll_3, #scroll_6 { 42 scroll-behavior: smooth; 43 } 44 45 #scroll_4 { 46 scroll-behavior: auto; 47 } 48 } 49 50 </style> 51 </head> 52 <body> 53 <div id="scroll_1" class="scroll_box"> 54 <div id="box1a" class="a_box"></div> 55 <div id="box1b" class="another_box"></div> 56 </div> 57 <div id="scroll_2" class="scroll_box"> 58 <div id="box2a" class="a_box"></div> 59 <div id="box2b" class="another_box"></div> 60 </div> 61 <div id="scroll_3" class="scroll_box"> 62 <div id="box3a" class="a_box"></div> 63 <div id="box3b" class="another_box"></div> 64 </div> 65 <div id="scroll_4" class="scroll_box"> 66 <div id="box4a" class="a_box"></div> 67 <div id="box4b" class="another_box"></div> 68 </div> 69 <div id="scroll_5" class="scroll_box"> 70 <div id="box5a" class="a_box"></div> 71 <div id="box5b" class="another_box"></div> 72 </div> 73 <div id="scroll_6" class="scroll_box"> 74 <div id="box6a" class="a_box"></div> 75 <div id="box6b" class="another_box"></div> 76 </div> 77 <script> 78 function doTest() { 79 if (document.location.search != '?ref') { 80 document.getElementById("box1b").scrollIntoView({block: "end"}); 81 document.getElementById("box2b").scrollIntoView({block: "end", behavior: "auto"}); 82 document.getElementById("box3b").scrollIntoView({block: "end", behavior: "smooth"}); 83 document.getElementById("box4b").scrollIntoView({block: "end", behavior: "smooth"}); 84 document.getElementById("box5b").scrollIntoView({block: "end", behavior: "smooth"}); 85 document.getElementById("box6b").scrollIntoView(false); 86 87 // Interrupt any smooth scrolling 88 for (var i=1; i <= 6; i++) { 89 document.getElementById("scroll_" + i).scrollLeft 90 = document.getElementById("scroll_" + i).scrollLeft; 91 document.getElementById("scroll_" + i).scrollTop 92 = document.getElementById("scroll_" + i).scrollTop; 93 } 94 } 95 document.documentElement.removeAttribute("class"); 96 } 97 for (var i=1; i <= 6; i++) { 98 document.getElementById("box" + i + "a") 99 .scrollIntoView({block: "start", behavior: "instant"}); 100 } 101 window.addEventListener("MozReftestInvalidate", doTest); 102 </script> 103 </body> 104 </html>