view-timeline-sticky-block.html (2507B)
1 <!DOCTYPE html> 2 <html id="top"> 3 <head> 4 <meta charset="utf-8"> 5 <title>View timeline with sticky</title> 6 <link rel="help" href="https://drafts.csswg.org/scroll-animations-1/#viewtimeline-interface"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/web-animations/testcommon.js"></script> 10 <script src="/scroll-animations/scroll-timelines/testcommon.js"></script> 11 <script src="/scroll-animations/view-timelines/testcommon.js"></script> 12 <style> 13 14 #container { 15 height: 500px; 16 overflow: auto; 17 } 18 .space { 19 height: 500px; 20 } 21 #targetp { 22 background: yellow; 23 position: sticky; 24 top: 0px; 25 bottom: 0px; 26 height: 50px; 27 } 28 #target { 29 height: 50px; 30 } 31 32 </style> 33 </head> 34 <body> 35 <div id="container"> 36 <div class="space"></div> 37 <div class="space"> 38 <div style="height: 200px"></div> 39 <div id="targetp"> 40 <div id="target">Subject</div> 41 </div> 42 </div> 43 <div class="space"></div> 44 </div> 45 <script type="text/javascript"> 46 47 promise_test(async t => { 48 await runTimelineRangeTest(t, { 49 rangeStart: { rangeName: 'cover', offset: CSS.percent(0) } , 50 rangeEnd: { rangeName: 'cover', offset: CSS.percent(100) }, 51 startOffset: 0, 52 endOffset: 1000, 53 axis: 'block' 54 }); 55 await runTimelineRangeTest(t, { 56 rangeStart: { rangeName: 'contain', offset: CSS.percent(0) } , 57 rangeEnd: { rangeName: 'contain', offset: CSS.percent(100) }, 58 startOffset: 50, 59 endOffset: 950, 60 axis: 'block' 61 }); 62 await runTimelineRangeTest(t, { 63 rangeStart: { rangeName: 'entry', offset: CSS.percent(0) }, 64 rangeEnd: { rangeName: 'entry', offset: CSS.percent(100) }, 65 startOffset: 0, 66 endOffset: 50, 67 axis: 'block' 68 }); 69 await runTimelineRangeTest(t, { 70 rangeStart: { rangeName: 'entry-crossing', offset: CSS.percent(0) }, 71 rangeEnd: { rangeName: 'entry-crossing', offset: CSS.percent(100) }, 72 startOffset: 0, 73 endOffset: 50, 74 axis: 'block' 75 }); 76 await runTimelineRangeTest(t, { 77 rangeStart: { rangeName: 'exit', offset: CSS.percent(0) }, 78 rangeEnd: { rangeName: 'exit', offset: CSS.percent(100) }, 79 startOffset: 950, 80 endOffset: 1000, 81 axis: 'block' 82 }); 83 await runTimelineRangeTest(t, { 84 rangeStart: { rangeName: 'exit-crossing', offset: CSS.percent(0) }, 85 rangeEnd: { rangeName: 'exit-crossing', offset: CSS.percent(100) }, 86 startOffset: 950, 87 endOffset: 1000, 88 axis: 'block' 89 }); 90 }, 'View timeline with sticky target, block axis.' ); 91 92 </script> 93 </body> 94 </html>