blob: fa011b075b85046b616966e2db997027afb56c49 [file] [log] [blame]
<!DOCTYPE html>
<style>
body {
height: 2000px;
}
#box {
position: relative;
width: 20px;
height: 20px;
background-color: blue;
}
.animating {
animation-name: slide;
animation-duration: 1ms;
animation-fill-mode: forwards;
animation-timing-function: step-start;
-webkit-animation-trigger: container-scroll(20px);
}
@-webkit-keyframes slide {
from {
left: 0px;
}
to {
left: 100px;
}
}
</style>
<script>
var results;
var box;
if (window.testRunner) {
window.testRunner.dumpAsText();
window.testRunner.waitUntilDone();
}
if (window.internals)
window.internals.settings.setVisualViewportEnabled(false);
function runTest() {
results = document.getElementById("results");
box = document.getElementById("box");
results.innerHTML = "Value before animation is applied: " + window.getComputedStyle(box).left + " (should be 0px)<br>";
box.className = "animating";
setTimeout(checkValueWithoutScroll, 0);
}
function checkValueWithoutScroll() {
results.innerHTML += "Value with animation but no scroll: " + window.getComputedStyle(box).left + " (should be 0px)<br>";
window.scrollTo(0, 30);
setTimeout(checkValueWithScroll, 0);
}
function checkValueWithScroll() {
results.innerHTML += "Value with animation after scroll: " + window.getComputedStyle(box).left + " (should be 100px)<br>";
if (window.testRunner)
window.testRunner.notifyDone();
}
window.addEventListener("load", runTest, false);
</script>
<p>This element should begin animating only when the page scrolls to 20px from
the top. The animation is almost instantaneous, so it will snap to its final
position. Remember to scroll to the top of the page before reloading!</p>
<div id="box"></div>
<div id="results"></div>