...

CSS μ λλ©μ΄μ μ¬μμ
μ리먼νΈ.effect {
animation: animation 1s linear
}
μ΄λ κ² μ΄λ€ μμμ ν΄λμ€λ‘ λ§λ μ λλ©μ΄μ μ λ£κ³ , μλ°μ€ν¬λ¦½νΈλ‘ νΉμ μν©μ μ λλ©μ΄μ μ΄ μ€νλκ² νμ λ,
κ·Έ νΉμ μ λλ©μ΄μ μν©μ΄ μ°μλλ©΄ μ λλ©μ΄μ μ μ²μλΆν° λ€μ μμνκ³ μΆμΌμ€ λκ° μμ κ²λλ€.
νμ§λ§ μλμ κ°μ΄ λ¨μν classλ₯Ό μ κ±°νκ³ λ€μ μΆκ°ν΄λ μ λλ©μ΄μ μ΄ μ¬μμ λμ§ μμ΅λλ€.
const target = μ리먼νΈ;
target.classList.remove("effect"),
target.classList.add("effect")
ν΄λμ€λ₯Ό λΆμ΄κ³ μ§μ°λ μΌμ μ¬μ€ νμ΄μ§μ λ§μ λΆλΆμ μν₯μ μ€ κ°λ₯μ±μ΄ ν½λλ€. μ΄λ° λ³νλ₯Ό λ°λ‘ λ λλ§ νκΈ°μλ λΉμ©μ΄ λ무 ν¬κΈ° λλ¬Έμ, λΈλΌμ°μ λ λ°λ‘ μ μ©μ νμ§ μμ΅λλ€.
λ€μ μμλλ‘ λ λλ§μ΄ λκ² λκΈ° λλ¬Έμ λλ€.
- ν΄λμ€κ° μ‘΄μ¬νλ©΄ μ§μ΄λ€
- λΈλΌμ°μ λ λ³νλ₯Ό κ°μ§νμ§λ§ λ°λ‘ μ μ©νμ§ μκ³ μΌλ¨ λμ΄κ°λ€.
- ν΄λμ€ λ€μ μΆκ°νλ€.
- λͺ¨λ λ‘μ§μ΄ μ’ λ£λκ³ λ³΄λ μλ¬΄λ° λ³νκ° μλ€. λΈλΌμ°μ λ λ³νκ° μμΌλ―λ‘ λ λλ§μ νμ§ μλλ€.
ν΄κ²°λ°©λ²μ, ν΄λμ€λ₯Ό μ§μ΄ νμ void element.offsetWidth;λ₯Ό λ£μ΄μ£Όλ©΄ λ©λλ€.
const target = μ리먼νΈ;
target.classList.remove("effect"),
void target.offsetWidth;
target.classList.add("effect")
μ μ½λλ ν° λ»μ μμ΅λλ€. κ·Έμ , λΈλΌμ°μ μ domμ λν μ 보(width)λ₯Ό μμ²νλ©΄μ κ°μ λ‘ λΈλΌμ°μ μκ² μΌμ μν€κ² ν λΏμ΄λ€. λΈλΌμ°μ λ μν€λκΉ μΌλ¨ κ³μ°μ μ§ννκ² λκ³ , ν΄λμ€λ₯Ό μ§μ μ λμ λ‘μ§ λν λ°λ‘ μ μ©λκ² λλ λ¨μν μ리 μ λλ€.
# μ°Έκ³ μλ£
https://marshall-ku.tistory.com/310
μ΄ κΈμ΄ μ’μΌμ ¨λ€λ©΄ ꡬλ & μ’μμ
μ¬λ¬λΆμ ꡬλ
κ³Ό μ’μμλ
μ μμκ² ν° νμ΄ λ©λλ€.