diff options
Diffstat (limited to 'share/frontend/imlandscape/js/RequestAnimationFrame.js')
| -rw-r--r-- | share/frontend/imlandscape/js/RequestAnimationFrame.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/share/frontend/imlandscape/js/RequestAnimationFrame.js b/share/frontend/imlandscape/js/RequestAnimationFrame.js new file mode 100644 index 0000000..b1940ae --- /dev/null +++ b/share/frontend/imlandscape/js/RequestAnimationFrame.js @@ -0,0 +1,24 @@ +(function() { + var lastTime = 0; + var vendors = ['webkit', 'moz']; + for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { + window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame']; + window.cancelAnimationFrame = + window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame']; + } + + if (!window.requestAnimationFrame) + window.requestAnimationFrame = function(callback, element) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function() { callback(currTime + timeToCall); }, + timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + + if (!window.cancelAnimationFrame) + window.cancelAnimationFrame = function(id) { + clearTimeout(id); + }; +}()); |
