Skip to content

Instantly share code, notes, and snippets.

@davinma
Created April 25, 2018 07:36
Show Gist options
  • Save davinma/2307dee87a79f0c4efc4d47b96176744 to your computer and use it in GitHub Desktop.
Save davinma/2307dee87a79f0c4efc4d47b96176744 to your computer and use it in GitHub Desktop.
requestAnimationFrame polyfill
window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e,n){window.setTimeout(e,1e3/60)},window.requestInterval=function(e,n){if(!(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame&&window.mozCancelRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame))return window.setInterval(e,n);var i=(new Date).getTime(),a=new Object;return a.value=requestAnimFrame(function t(){(new Date).getTime()-i>=n&&(e.call(),i=(new Date).getTime()),a.value=requestAnimFrame(t)}),a},window.clearRequestInterval=function(e){window.cancelAnimationFrame?window.cancelAnimationFrame(e.value):window.webkitCancelAnimationFrame?window.webkitCancelAnimationFrame(e.value):window.webkitCancelRequestAnimationFrame?window.webkitCancelRequestAnimationFrame(e.value):window.mozCancelRequestAnimationFrame?window.mozCancelRequestAnimationFrame(e.value):window.oCancelRequestAnimationFrame?window.oCancelRequestAnimationFrame(e.value):window.msCancelRequestAnimationFrame?window.msCancelRequestAnimationFrame(e.value):clearInterval(e)},window.requestTimeout=function(e,n){if(!(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame&&window.mozCancelRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame))return window.setTimeout(e,n);var i=(new Date).getTime(),a=new Object;return a.value=requestAnimFrame(function t(){(new Date).getTime()-i>=n?e.call():a.value=requestAnimFrame(t)}),a},window.clearRequestTimeout=function(e){window.cancelAnimationFrame?window.cancelAnimationFrame(e.value):window.webkitCancelAnimationFrame?window.webkitCancelAnimationFrame(e.value):window.webkitCancelRequestAnimationFrame?window.webkitCancelRequestAnimationFrame(e.value):window.mozCancelRequestAnimationFrame?window.mozCancelRequestAnimationFrame(e.value):window.oCancelRequestAnimationFrame?window.oCancelRequestAnimationFrame(e.value):window.msCancelRequestAnimationFrame?window.msCancelRequestAnimationFrame(e.value):clearTimeout(e)};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment