1
0
Fork 0
firefox/testing/web-platform/tests/css/cssom-view/smooth-scrollIntoView-with-smooth-fragment-scroll-iframe.html
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

63 lines
1.9 KiB
HTML

<!DOCTYPE html>
<html>
<body>
<style>
* {
scroll-behavior: smooth;
}
.scroller {
overflow-y: scroll;
height: 200px;
width: 200px;
background-color: teal;
border: solid 1px black;
position: relative;
display: inline-block;
}
.space {
height: 200vh;
width: 200vw;
}
.box {
height: 50px;
width: 50px;
background-color: purple;
}
.target {
position: absolute;
top: 150%;
}
</style>
<div id="fragment_scroll_container" class="scroller">
<div class="space"></div>
<div class="box target" id="fragment_scroll_target">target</div>
</div>
<div id="scrollintoview_container" class="scroller">
<div class="space"></div>
<div class="box target" id="scrollintoview_target"></div>
</div>
<a id="fragment_link" href="#fragment_scroll_target">Scroll To Fragment</a>
</style>
<script>
const fragment_scroll_container =
document.getElementById("fragment_scroll_container");
const scrollintoview_container =
document.getElementById("scrollintoview_container");
const scrollintoview_target =
document.getElementById("scrollintoview_target");
const parent = window.parent;
// Post a message to the parent frame when the scroll ends to the test can
// proceed.
scrollintoview_container.addEventListener("scrollend", () => {
parent.postMessage("ready");
}, { once: true });
// Start a scroll on the scrollintoview container as soon as we start
// scrolling the fragment's container.
fragment_scroll_container.addEventListener("scroll", () => {
scrollintoview_target.scrollIntoView({ behavior: "smooth" });
}, { once: true });
</script>
</body>
</html>