gecko/layout/reftests/position-dynamic-changes/vertical/animate.js
Ehsan Akhgari 2940bf2f84 Bug 157681 - Part 1: Add a test suite to make sure that dynamic changes to the position CSS properties work correctly; r=dbaron
These series of tests attempt to ensure conformance to the CSS 2.1
sections 10.3.7 and 10.6.4.
2012-06-06 00:53:33 -04:00

62 lines
1.3 KiB
JavaScript

var currentOffset = null;
var maxOffset = null;
var property = "top";
var rfa = null;
if (window.requestAnimationFrame) {
rfa = requestAnimationFrame;
} else if (window.mozRequestAnimationFrame) {
rfa = mozRequestAnimationFrame;
} else if (window.webkitRequestAnimationFrame) {
rfa = webkitRequestAnimationFrame;
} else if (window.msRequestAnimationFrame) {
rfa = msRequestAnimationFrame;
} else if (window.oRequestAnimationFrame) {
rfa = oRequestAnimationFrame;
}
function animate(from, to, prop) {
currentOffset = from;
maxOffset = to;
if (prop) {
property = prop;
}
rfa(animateStep);
}
function animateStep() {
if (currentOffset <= maxOffset) {
document.getElementById("child").style[property] = currentOffset + "px";
currentOffset += 10;
rfa(animateStep);
} else {
document.documentElement.removeAttribute("class");
}
}
function toAuto(prop) {
if (prop) {
property = prop;
}
rfa(setToAuto);
}
function setToAuto() {
document.getElementById("child").style[property] = "auto";
document.documentElement.removeAttribute("class");
}
function fromAuto(to, prop) {
maxOffset = to;
if (prop) {
property = prop;
}
rfa(setFromAuto);
}
function setFromAuto() {
document.getElementById("child").style[property] = maxOffset + "px";
document.documentElement.removeAttribute("class");
}