diff options
Diffstat (limited to 'testing/web-platform/tests/scroll-animations/css/animation-timeline-multiple.html')
-rw-r--r-- | testing/web-platform/tests/scroll-animations/css/animation-timeline-multiple.html | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/testing/web-platform/tests/scroll-animations/css/animation-timeline-multiple.html b/testing/web-platform/tests/scroll-animations/css/animation-timeline-multiple.html new file mode 100644 index 0000000000..8ae37bf751 --- /dev/null +++ b/testing/web-platform/tests/scroll-animations/css/animation-timeline-multiple.html @@ -0,0 +1,90 @@ +<!DOCTYPE html> +<title>animation-timeline with multiple timelines</title> +<link rel="help" src="https://drafts.csswg.org/css-animations-2/#animation-timeline"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/web-animations/testcommon.js"></script> +<style> + main > div { + overflow: hidden; + width: 100px; + height: 100px; + } + main > div > div { + height: 200px; + width: 200px; + } + + @keyframes top { + from { top: 100px; } + to { top: 200px; } + } + @keyframes bottom { + from { bottom: 100px; } + to { bottom: 200px; } + } + @keyframes left { + from { left: 100px; } + to { left: 200px; } + } + @keyframes right { + from { right: 100px; } + to { right: 200px; } + } + + #top_scroller { + scroll-timeline: block top_timeline; + } + #bottom_scroller { + scroll-timeline: inline bottom_timeline; + } + #left_scroller { + scroll-timeline: block left_timeline; + } + #right_scroller { + scroll-timeline: inline right_timeline; + } + + #element { + animation-name: top, bottom, left, right; + animation-duration: 10s; + animation-timing-function: linear; + animation-timeline: top_timeline, bottom_timeline, left_timeline, right_timeline; + } + /* Ensure stable expectations if feature is not supported */ + @supports not (animation-timeline:foo) { + #element { animation-play-state: paused; } + } +</style> +<main> + <div id=top_scroller><div></div></div> + <div id=bottom_scroller><div></div></div> + <div id=left_scroller><div></div></div> + <div id=right_scroller><div></div></div> + <div id=element></div> +</main> +<script> + // Force layout of scrollers. + top_scroller.offsetTop; + bottom_scroller.offsetTop; + left_scroller.offsetTop; + right_scroller.offsetTop; + + top_scroller.scrollTop = 20; + top_scroller.scrollLeft = 40; + bottom_scroller.scrollTop = 20; + bottom_scroller.scrollLeft = 40; + left_scroller.scrollTop = 60; + left_scroller.scrollLeft = 80; + right_scroller.scrollTop = 60; + right_scroller.scrollLeft = 80; + + promise_test(async (t) => { + await waitForNextFrame(); + assert_equals(getComputedStyle(element).top, '120px'); + assert_equals(getComputedStyle(element).bottom, '140px'); + assert_equals(getComputedStyle(element).left, '160px'); + assert_equals(getComputedStyle(element).right, '180px'); + }, 'animation-timeline works with multiple timelines'); + +</script> |