fallback for browsers that don't implement requestAnimationFrame