Skip to content

Instantly share code, notes, and snippets.

@ryanseddon
Forked from mrdoob/RequestAnimationFrame.js
Created February 23, 2011 23:40
Show Gist options
  • Save ryanseddon/841439 to your computer and use it in GitHub Desktop.
Save ryanseddon/841439 to your computer and use it in GitHub Desktop.
/**
* Provides requestAnimationFrame in a cross browser way.
* @author paulirish / http://paulirish.com/
*/
if ( !window.requestAnimationFrame ) {
var pollFocus;
window.requestAnimationFrame = ( function() {
return window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( /* function FrameRequestCallback */ callback, /* DOMElement Element */ element ) {
// Use document hasFocus to only call animation on focus
if("hasFocus" in document && document.hasFocus()) {
window.setTimeout(callback, 1000 / 60);
clearInterval(pollFocus);
} else if("hasFocus" in document && !document.hasFocus()) {
// Poll for refocus less CPU intensive?
pollFocus = window.setInterval(hasFocus,500);
} else {
// No hasFocus support fallback to timeout
window.setTimeout(callback, 1000 / 60);
}
};
} )();
function hasFocus() {
if(document.hasFocus()) {
// Document has focus start animation again
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment