Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
window.requestAnimationFrame shim
requestAnimationFrame polyfill by Erik Möller
fixes from Paul Irish and Tino Zijdel
Coffeescript and AMD by Blaine Bublitz
define [], ->
lastTime = 0
vendors = ["ms", "moz", "webkit", "o"]
# Try browser implementation
for vendor in vendors
break if window.requestAnimationFrame
window.requestAnimationFrame = window["#{vendor}RequestAnimationFrame"]
window.cancelAnimationFrame = window["#{vendor}CancelAnimationFrame"] or window["#{vendor}CancelRequestAnimationFrame"]
# Fall back to javascript
window.requestAnimationFrame ?= (callback, element) ->
currTime = new Date().getTime()
timeToCall = Math.max 0, 16 - (currTime - lastTime)
id = setTimeout (->callback(currTime + timeToCall)), timeToCall
lastTime = currTime + timeToCall
return id
window.cancelAnimationFrame ?= clearTimeout
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.