... Ensure that the minimum viewport scaling for `anchor-scroll-nested.html` as well as its reference file is set to 1, since having the viewport scaled breaks the reference's expecation of available scroll area. Differential Revision: https://phabricator.services.mozilla.com/D264101
92 lines
1.8 KiB
HTML
92 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<html class="reftest-wait">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
|
|
<title>Tests anchor positioning with nested scroll containers</title>
|
|
<link rel="author" href="mailto:xiaochengh@chromium.org">
|
|
<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
|
|
<link rel="match" href="reference/anchor-scroll-nested-ref.html">
|
|
<style>
|
|
body {
|
|
margin: 0;
|
|
width: 1500px;
|
|
height: 1500px;
|
|
position: relative;
|
|
}
|
|
|
|
#outer-scroller {
|
|
margin: 500px;
|
|
width: 350px;
|
|
height: 350px;
|
|
outline: 1px solid black;
|
|
overflow: scroll;
|
|
}
|
|
|
|
#inner-scroller {
|
|
margin: 100px;
|
|
width: 250px;
|
|
height: 250px;
|
|
outline: 1px solid black;
|
|
overflow: scroll;
|
|
}
|
|
|
|
#anchor {
|
|
margin: 200px;
|
|
width: 50px;
|
|
height: 50px;
|
|
background-color: green;
|
|
anchor-name: --anchor;
|
|
}
|
|
|
|
.anchored {
|
|
position: absolute;
|
|
width: 50px;
|
|
height: 50px;
|
|
left: anchor(left);
|
|
position-anchor: --anchor;
|
|
}
|
|
|
|
.above {
|
|
bottom: anchor(top);
|
|
background-color: red;
|
|
}
|
|
|
|
.below {
|
|
top: anchor(bottom);
|
|
background-color: yellow;
|
|
}
|
|
</style>
|
|
|
|
<div id="outer-scroller">
|
|
<div id="inner-scroller">
|
|
<div id="anchor"></div>
|
|
<div class="anchored above"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="anchored below"></div>
|
|
|
|
<script>
|
|
function raf() {
|
|
return new Promise(resolve => requestAnimationFrame(resolve));
|
|
}
|
|
|
|
async function runTest() {
|
|
await raf();
|
|
await raf();
|
|
|
|
document.documentElement.scrollTop = 400;
|
|
document.documentElement.scrollLeft = 400;
|
|
|
|
let outerScroller = document.getElementById('outer-scroller');
|
|
outerScroller.scrollTop = 50;
|
|
outerScroller.scrollLeft = 50;
|
|
|
|
let innerScroller = document.getElementById('inner-scroller');
|
|
innerScroller.scrollTop = 100;
|
|
innerScroller.scrollLeft = 100;
|
|
|
|
document.documentElement.classList.remove('reftest-wait');
|
|
}
|
|
runTest();
|
|
</script>
|