window.requestAnimationFrame()은 브라우저에게 수행하기를 원하는 애니메이션을 알리고 다음 리페인트가 진행되기 전에 해당 애니메이션을 업데이트하는 함수를 호출하게 합니다.

취소

window.cancelAnimationFrame()

setTimeout 보다 좋은점

https://codepen.io/chriscoyier/pen/ltseg