| <!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] --> |
| <html> |
| <head> |
| <style> |
| .bordered { |
| border-top: 20px solid black; |
| border-bottom: 10px solid black; |
| border-left: 15px solid black; |
| border-right: 9px solid black; |
| } |
| .padded { |
| padding-left: 20px; |
| padding-right: 10px; |
| padding-top: 15px; |
| padding-bottom: 9px; |
| } |
| .horizontalGallery { |
| direction: rtl; |
| width: 100px; |
| height: 100px; |
| overflow-y: hidden; |
| overflow-x: auto; |
| margin: 2px; |
| -webkit-overflow-scrolling: touch; |
| scroll-snap-type: x mandatory; |
| } |
| .horizontalGalleryDrawer { |
| width: 600%; |
| height: 100%; |
| } |
| .colorBox { |
| scroll-snap-align: start; |
| height: 100px; |
| width: 100px; |
| float: left; |
| } |
| #itemH0, #itemV0 { background-color: red; } |
| #itemH1, #itemV1 { background-color: green; } |
| #itemH2, #itemV2 { background-color: blue; } |
| #itemH3, #itemV3 { background-color: aqua; } |
| #itemH4, #itemV4 { background-color: yellow; } |
| #itemH5, #itemV5 { background-color: fuchsia; } |
| </style> |
| <script src="../../resources/js-test.js"></script> |
| <script> |
| function reportResult(horizontalTargetID, verticalTargetID) |
| { |
| let horizontalTarget = document.getElementById(horizontalTargetID); |
| debug("Scroll-snap offsets for " + horizontalTargetID + ": " + window.internals.scrollSnapOffsets(horizontalTarget)); |
| } |
| |
| function runTest() |
| { |
| reportResult('horizontalTarget', 'verticalTarget'); |
| reportResult('horizontalBorderedTarget', 'verticalBorderedTarget'); |
| reportResult('horizontalPaddedTarget', 'verticalPaddedTarget'); |
| reportResult('horizontalBorderedPaddedTarget', 'verticalBorderedPaddedTarget'); |
| reportResult('horizontalRotatedTarget', 'verticalRotatedTarget') |
| |
| finishJSTest(); |
| } |
| |
| function onLoad() |
| { |
| jsTestIsAsync = true; |
| if (window.testRunner) |
| setTimeout(runTest, 0); |
| } |
| </script> |
| </head> |
| <body onload="onLoad();"> |
| <div style="position: relative; width: 300px"> |
| <div>Tests that the scroll-snap feature works properly in overflow regions.</div> |
| <div class="horizontalGallery" id="horizontalTarget"> |
| <div class="horizontalGalleryDrawer"> |
| <div id="itemH0" class="colorBox"></div> |
| <div id="itemH1" class="colorBox"></div> |
| <div id="itemH2" class="colorBox"></div> |
| <div id="itemH3" class="colorBox"></div> |
| <div id="itemH4" class="colorBox"></div> |
| <div id="itemH5" class="colorBox"></div> |
| </div> |
| </div> |
| <div class="horizontalGallery bordered" id="horizontalBorderedTarget"> |
| <div class="horizontalGalleryDrawer"> |
| <div id="itemH0" class="colorBox"></div> |
| <div id="itemH1" class="colorBox"></div> |
| <div id="itemH2" class="colorBox"></div> |
| <div id="itemH3" class="colorBox"></div> |
| <div id="itemH4" class="colorBox"></div> |
| <div id="itemH5" class="colorBox"></div> |
| </div> |
| </div> |
| <div class="horizontalGallery padded" id="horizontalPaddedTarget"> |
| <div class="horizontalGalleryDrawer"> |
| <div id="itemH0" class="colorBox"></div> |
| <div id="itemH1" class="colorBox"></div> |
| <div id="itemH2" class="colorBox"></div> |
| <div id="itemH3" class="colorBox"></div> |
| <div id="itemH4" class="colorBox"></div> |
| <div id="itemH5" class="colorBox"></div> |
| </div> |
| </div> |
| <div class="horizontalGallery bordered padded" id="horizontalBorderedPaddedTarget"> |
| <div class="horizontalGalleryDrawer"> |
| <div id="itemH0" class="colorBox"></div> |
| <div id="itemH1" class="colorBox"></div> |
| <div id="itemH2" class="colorBox"></div> |
| <div id="itemH3" class="colorBox"></div> |
| <div id="itemH4" class="colorBox"></div> |
| <div id="itemH5" class="colorBox"></div> |
| </div> |
| </div> |
| <div class="horizontalGallery bordered padded" id="horizontalRotatedTarget" style="transform: rotate(20deg)"> |
| <div class="horizontalGalleryDrawer"> |
| <div id="itemH0" class="colorBox"></div> |
| <div id="itemH1" class="colorBox"></div> |
| <div id="itemH2" class="colorBox"></div> |
| <div id="itemH3" class="colorBox"></div> |
| <div id="itemH4" class="colorBox"></div> |
| <div id="itemH5" class="colorBox"></div> |
| </div> |
| </div> |
| <div id="console"></div> |
| </div> |
| </body> |
| </html> |