blob: 5c2133860b02195839543005e93ff994cc5f7c4a [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
<style>
#scroller {
position: absolute;
top: 20px;
left: 20px;
width: 500px;
height: 400px;
border: 2px solid gray;
overflow-y: scroll;
background-color: rgba(255, 255, 255, 0.5);
box-sizing: border-box;
}
.fixed {
position: fixed;
left: 0px;
top: -200px; /* outside the viewport */
width: 200px;
height: 100px;
}
.box {
position: absolute;
top: 210px;
left: 10px;
width: 300px;
height: 100px;
background-color: green;
}
.contents {
position: absolute;
left: 35px;
top: 28px;
width: 90%;
height: 300%;
}
.outside-box {
position: absolute;
overflow: hidden;
top: 20px;
left: 530px;
width: 20px;
height: 400px;
background-color: silver;
}
#header {
position: relative;
background-color: blue;
width: 100%;
height: 20px;
}
</style>
<script>
if (window.testRunner)
testRunner.waitUntilDone();
window.addEventListener('load', () => {
const scroller = document.getElementById('scroller');
scroller.addEventListener('scroll', () => {
const scrollPos = scroller.scrollTop;
const header = document.getElementById('header');
header.style.top = `-${scrollPos}px`;
}, false);
requestAnimationFrame(() => {
scroller.scrollTop = 100;
if (window.testRunner)
testRunner.notifyDone();
})
}, false);
</script>
</head>
<body>
<div id="scroller">
<div class="contents">
<div class="fixed"></div>
<div class="box"></div>
</div>
</div>
<div class="outside-box">
<div id="header">relative</div>
</div>
</body>