<!DOCTYPE html>
<html>
<head>
<script>
function done()
{
if (window.testRunner)
testRunner.notifyDone();
}
if (window.location.hash == '') {
if (window.testRunner)
testRunner.waitUntilDone();
window.onhashchange = done;
location = '#hash';
}
</script>
<style>
.group {
display: inline-block;
position: relative;
width: 150px;
height: 500px;
}
#overflow {
width: 600px;
height: 550px;
overflow: hidden; /* Still scrollable with JS */
border: 1px solid black;
position: relative;
}
.spacer {
float: left;
width: 10px;
height: 500px;
}
.container {
width: 100px;
height: 400px;
outline: 2px solid black;
}
.box {
width: 100px;
height: 200px;
}
.hash {
width: 600px;
height: 10px;
background-color: gray;
position: absolute;
border: 0px;
}
.sticky {
position: sticky;
top: 100px;
background-color: green;
}
.indicator {
position: absolute;
top: 0;
left: 0;
background-color: red;
}
</style>
</head>
<body>
<div id="overflow">
<div class="spacer"></div>
<div class="group">
<div class="indicator box" style="top: 200px;"></div>
<div class="container">
<div class="sticky box"></div>
</div>
</div>
<div class="group" style="top: 100px">
<div class="indicator box" style="top: 120px;"></div>
<div class="container">
<div class="sticky box"></div>
</div>
</div>
<div class="group" style="top: 240px">
<div class="indicator box" style="top: 0;"></div>
<div class="container">
<div class="sticky box"></div>
</div>
</div>
<div id="hash" class="hash" style="top: 120px;">
</div>
</div>
<div style="position: absolute; top: 560px;">
This test checks that sticky positioning when scrolled by fragment.
There should be no red.
</div>
</body>
</html>