diff options
Diffstat (limited to 'layout/reftests/position-dynamic-changes/vertical/animate.js')
-rw-r--r-- | layout/reftests/position-dynamic-changes/vertical/animate.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/layout/reftests/position-dynamic-changes/vertical/animate.js b/layout/reftests/position-dynamic-changes/vertical/animate.js new file mode 100644 index 0000000000..a53d6a1800 --- /dev/null +++ b/layout/reftests/position-dynamic-changes/vertical/animate.js @@ -0,0 +1,59 @@ +var currentOffset = null; +var maxOffset = null; +var property = "top"; + +var rfa = null; +if (window.requestAnimationFrame) { + rfa = requestAnimationFrame; +} 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"); +} + |