aboutsummaryrefslogtreecommitdiffstats
path: root/src/polyfill.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/polyfill.js')
-rw-r--r--src/polyfill.js30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/polyfill.js b/src/polyfill.js
index 3a3c25c..a913337 100644
--- a/src/polyfill.js
+++ b/src/polyfill.js
@@ -11,4 +11,32 @@ if (typeof CustomEvent !== 'function') {
CustomEvent.prototype = window.Event.prototype
window.CustomEvent = CustomEvent
-} \ No newline at end of file
+}
+
+// requestAnimationFrame / cancelAnimationFrame Polyfill with fallback based on Paul Irish
+(function(w) {
+ var lastTime = 0
+ var vendors = ['moz', 'webkit']
+
+ for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
+ w.requestAnimationFrame = w[vendors[x] + 'RequestAnimationFrame']
+ w.cancelAnimationFrame = w[vendors[x] + 'CancelAnimationFrame'] ||
+ w[vendors[x] + 'CancelRequestAnimationFrame']
+ }
+
+ w.requestAnimationFrame = w.requestAnimationFrame ||
+ function(callback) {
+ var currTime = new Date().getTime()
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime))
+
+ var id = w.setTimeout(function() {
+ callback(currTime + timeToCall)
+ }, timeToCall)
+
+ lastTime = currTime + timeToCall
+ return id
+ }
+
+ w.cancelAnimationFrame = w.cancelAnimationFrame || w.clearTimeout;
+
+}(window)) \ No newline at end of file