반복과 멈춤 - inhye94/shopping-list GitHub Wiki

setInterval과 clearInterval

계속 폰트 색상이 변하는 타이틀
포커스가 될 때에만 배경색이 변하는 Input

Input에 포커스가 되면, 배경색이 무지개 빛으로 변하도록 애니메이션을 추가했다.
문제는, 포커스가 풀려도 여전히 휘황찬란하다는 것이다.🥲

🙌 결론

  • Input에 blur 이벤트를 지정
  • blur 이벤트의 콜백함수에 clearInterval 구현

👀 애먹은 부분

clearInterval 구현

이유

clearInterval 인자에 intervalID 대신 callbackFunc를 넣음
intervalID는 "setInterval()를 호출하는 변수"라고 생각하면 된다.

  • 콜백함수를 멈춘다 (X)
  • 반복적인 호출을 멈춘다 (O)

적절한 비유인지 모르겠지만,

  • 방구(동작)를 그만 싸도록 똥꼬(콜백함수)를 막는게 아니라,
  • 약(반복 호출을 막음)을 먹어서 방구(동작)를 멎게 한다는 개념이다.

출처: MDN setInterval
출처: MDN clearInterval

⚠️ **GitHub.com Fallback** ⚠️