support requestAnimationFrame