Actualizado el código para que utilice window.requestAnimationFrame