CSS μ λλ©μ΄μ
transition VS animation
transitionμ μμμ μνκ° λ³ν λ μ λλ©μ΄μ
μ μ€ννλ€. animation μμ±μ μμμ λͺ¨μκ³Ό λμμ ν€νλ μ λ¨μλ‘ λ³κ²½ν μ μλ€.
ν€νλ μ λμμ μ¬μ νμ, λ°©ν₯ λ± μ¬λ¬ μμ±μΌλ‘ μ μ΄ν μ μλ€.
κ°μ₯ ν° μ°¨μ΄λ transition μ μμμ μνκ° λ°λ λμ μνλ₯Ό μ λλ©μ΄μ
μΌλ‘ νννμ§λ§, animation μμ±μ μμμ μν λ³νμ μκ΄μμ΄
μ λλ©μ΄μ
μ μ€ννλ€. λν @keyframse μμ±μΌλ‘ νλ μμ μΆκ°ν μ μλ€.
transitionμ μ)
.box {
width: 100px;
height: 100px;
transition: width 2s, height 2s; // μμμ μν λ³ν
&:hover {
width: 200px;
height: 200px;
}
}animation
animation-name:@keyframesκ·μΉμ μ€μ ν΄ μ μν μ λλ©μ΄μ μ΄λ¦animation-duration: μ λλ©μ΄μ μ΄ μΌλ§μ κ±Έμ³ μΌμ΄λ μ§ κ²°μ animation-delay: λ‘λ μ΄ν μ΄λ μ λ ν μ λμ΄ μ λλ©μ΄μ μ΄ μμλ μ§ μ§μ animation-direction: μ λλ©μ΄μ μ λ°©ν₯ μ§μ animation-iteration-count: μ λλ©μ΄μ μ΄ λͺ λ² λ°λ³΅λ μ§ μ§μ infiniteλ‘ μ§μ νλ©΄ 무νλ°λ³΅animation-play-state: μ λλ©μ΄μ μ λ©μΆκ±°λ λ€μ μμanimation-timing-function: μ€κ° μνλ€μ μ ν κ°κ²©μ μ§μ animation-fill-mode: μμλκΈ° μ μ΄λ λλκ³ λ ν μ΄λ€ κ°μ΄ μ μ©λ μ§ μ§μ
animationμ μ±λ₯ λ¬Έμ
margin,heightμμ±μ μ λλ©μ΄μ μ μ¬μ©νμ λ μ±λ₯ μ νλ₯Ό μ λ°νλ€.- μ보μ΄λ - λΆλλ¬μ΄ μ λλ©μ΄μ
λ§λλ λ°©λ²
- λΆλλ¬μ΄ μ λλ©μ΄μ
μ μ μ©νλ €λ©΄
reflowμrepaintλ₯Ό μ΅μν μμΌμΌ νλ€.
- λΆλλ¬μ΄ μ λλ©μ΄μ
μ μ μ©νλ €λ©΄
- reflow / repaintκ° λ°μνλ μμ±
reflowλ₯Ό μ΅μννλ λ°©λ²
- ν΄λμ€ λ³νμ λ°λ₯Έ μ€νμΌμ λ³νλ₯Ό μν κ²½μ°, μ΅λν DOM ꡬ쑰 μμͺ½μ μμΉν λ Έλμ μΆκ°ν©λλ€.
- μ λλ©μ΄μ
μ΄ λ€μ΄κ° μμλ κ°κΈμ
position: fixedλλposition: absoluteλ‘ μ§μ ν©λλ€.- λ€λ₯Έ μμμλ μν₯μ λΌμΉμ§ μμΌλ―λ‘ ν΄λΉ μμλ§ reflowκ° λ°μν©λλ€.
- JSλ₯Ό ν΅ν΄ μ€νμΌ λ³νλ₯Ό μ€ κ²½μ°, κ°κΈμ νλ²μ μ²λ¦¬ν©λλ€.
- μΈλΌμΈ μ€νμΌμ μ΅λν λ°°μ ν©λλ€.
- ν μ΄λΈ λ μ΄μμμ νΌνλ κ²μ΄ μ’μ΅λλ€.
- ν μ΄λΈ λ μ΄μμμ λμ΄λ₯Ό κ³μ°νλ©΄μ λ λλ§μ΄ λλ €μ§λλ€. κΌ νμν κ²½μ°λ₯Ό μ μΈνκ³€ ν μ΄λΈ λ μ΄μμμ μ¬μ©νμ§ μλ κ²μ΄ μ’μ΅λλ€. λ§μ½ μ¬μ©νλ€λ©΄ CSS μμ±
table-layout: fixedλ₯Ό μ¬μ©νλ©΄ μ‘°κΈ λ λΉ λ₯΄κ² λ λλ§ ν μ μμ΅λλ€.
6. CSS νμμ νμλ νμν λ§νΌ μ 리νλ κ²μ΄ μ’μ΅λλ€.
λ³κ²½μ 미리 κ°μ§νμ¬ μλ €μ£Όλ will-change λ°©λ²λ μλλ° μ΄κ±΄ λμ€μ λ΄μΌμ§ ..
μ λλ©μ΄μ
ν€νλ μμ κ²½μ° CPUλ₯Ό λ§μ΄ μ¬μ©νμ¬ μμΉ« λΆνλ₯Ό κ°μ Έλ€μ€ μ μλλ° λ€λ₯Έ λ°©λ²μΌλ‘ GPUλ₯Ό μ¬μ©νλλ‘ μ λν μ μλ€. λ§ν¬
Ref
https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions https://webclub.tistory.com/621 https://wit.nts-corp.com/2017/06/05/4571 http://daplus.net/css-css-%ED%82%A4-%ED%94%84%EB%A0%88%EC%9E%84-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-cpu-%EC%82%AC%EC%9A%A9%EB%9F%89%EC%9D%B4-%EB%86%92%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%B4%EB%A0%87%EA%B2%8C/