CSS μμ± 14. animation
βοΈ ν΄λΉ κΈμ ν¨μ€νΈμΊ νΌμ€ - νλ‘ νΈμλ κ°λ° κ°μμμ HTML & CSS, SASS(SCSS) Partμ λ°μμ κ°μ¬λμ κ°μμλ£λ₯Ό μ 리ν κ²μ λλ€.
animation
#
μμμ μ λλ©μ΄μ μ μ€μ /μ μ΄ - λ¨μΆ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
animation-name | @keyframes κ·μΉμ μ΄λ¦μ μ§μ | none |
animation-duration | μ λλ©μ΄μ μ μ§μ μκ° μ€μ | 0s |
animation-timing-function | νμ΄λ° ν¨μ μ§μ | ease |
animation-delay | μ λλ©μ΄μ μ λκΈ° μκ° μ€μ | 0s |
animation-iteration-count | μ λλ©μ΄μ μ λ°λ³΅ νμ μ€μ | 1 |
animation-direction | μ λλ©μ΄μ μ λ°λ³΅ λ°©ν₯ μ€μ | normal |
animation-fill-mode | μ λλ©μ΄μ μ μ ν μν(μμΉ) μ€μ | none |
animation-play-state | μ λλ©μ΄μ μ μ¬μκ³Ό μ μ§ μ€μ | running |
βοΈ animation μμ± μμ²΄κ° μ λλ©μ΄μ μ λ§λ€μ΄μ£Όλ κ²μ μλκ³ @keyframes μ μ€μ λ μ λλ©μ΄μ μ μ μ΄νλ κ°λ μ΄λ€.
#
μ¬μ©λ²animation: μ λλ©μ΄μ
μ΄λ¦ μ§μμκ° [νμ΄λ°ν¨μ λκΈ°μκ° λ°λ³΅νμ λ°λ³΅λ°©ν₯ μ νμν μ¬μ/μ μ§];
.box {width: 100px;height: 100px;background: tomato;animation: hello 2s linear infinite both;}@keyframes hello {0% { width: 200px; }100% { width: 50px; }}
@keyframes
#
2κ° μ΄μμ μ λλ©μ΄μ μ€κ° μν(νλ μ)μ μ§μ
#
μ¬μ©λ²@keyframes μ λλ©μ΄μ
μ΄λ¦ {0% { μμ±: κ°; }50% { μμ±: κ°; }100% { μμ±: κ°; }}
#
μμ <div class="box"></div>
.box {width: 100px;height: 100px;background: tomato;border-radius: 10px;}.box:hover {animation: my-animation 3s infinite alternate;}@keyframes my-animation {0% {width: 100px;background: tomato;}75% {width: 500px;background: dodgerblue;}100% {width: 300px;background: yellowgreen;}}
βοΈ transition μ λΉν΄ @keyframes λ₯Ό μ΄μ©νλ©΄ μ λλ©μ΄μ μ λ μΈλΆμ μΌλ‘ μ€μ ν μ μλ€.
animation-name
#
@keyframes
κ·μΉ(μ λλ©μ΄μ
νλ μ)μ μ΄λ¦μ μ§μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
none | μ λλ©μ΄μ μ μ§μ νμ§ μμ | none |
@keyframes μ΄λ¦ | μ΄λ¦μ΄ μΌμΉνλ @keyframes κ·μΉμ μ λλ©μ΄μ μ μ μ© |
animation-duration
#
μ λλ©μ΄μ μ μ§μ μκ° μ€μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
μκ° | μ§μ μκ°μ μ€μ | 0s |
animation-timing-function
#
νμ΄λ° ν¨μ(μ λλ©μ΄μ ν¨κ³Όλ₯Ό κ³μ°νλ λ°©λ²) μ§μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° | Cubic Bezier κ° |
---|---|---|---|
ease | λΉ λ₯΄κ² - λλ¦¬κ² | ease | cubic-bezier(.25, .1, .25, 1) |
linear | μΌμ νκ² | cubic-bezier(0, 0, 1, 1) | |
ease-in | λλ¦¬κ² - λΉ λ₯΄κ² | cubic-bezier(.42, 0, 1, 1) | |
ease-out | λΉ λ₯΄κ² - λλ¦¬κ² | cubic-bezier(0, 0, .58, 1) | |
ease-in-out | λλ¦¬κ² - λΉ λ₯΄κ² - λλ¦¬κ² | cubic-bezier(.42, 0, .58, 1) | |
cubic-bezier(n, n, n, n) | μμ λ§μ κ°μ μ μ ( 0 ~ 1 ) | ||
steps(n) | n λ² λΆν λ μ λλ©μ΄μ |
animation-delay
#
μ λλ©μ΄μ μ λκΈ° μκ° μ€μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
μκ° | λκΈ° μκ°μ μ€μ | 0s |
βοΈ μμκ° νμ©λλ€. μμκ° μμ κ²½μ° μ λλ©μ΄μ μ λ°λ‘ μμλμ§λ§, κ·Έ κ°λ§νΌμ λλ©μ΄μ μ΄ μμ μμνλ€. (μ λλ©μ΄μ μ£ΌκΈ° λμ€μ μμ)ex) -1s λ‘ μ€μ μ, 2 μ΄μ§λ¦¬ μ λλ©μ΄μ μ 1μ΄λΆν° μμν¨
animation-iteration-count
#
μ λλ©μ΄μ μ λ°λ³΅ νμλ₯Ό μ€μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
μ«μ | λ°λ³΅ νμλ₯Ό μ€μ | 1 |
infinite | 무ν λ°λ³΅ |
animation-direction
#
μ λλ©μ΄μ μ λ°λ³΅ λ°©ν₯μ μ€μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
normal | μ λ°©ν₯λ§ λ°λ³΅ | normal |
reverse | μλ°©ν₯λ§ λ°λ³΅ | |
alternate | μ λ°©ν₯μμ μλ°©ν₯μΌλ‘ λ°λ³΅(μ볡) | |
alternate-reverse | μλ°©ν₯μμ μ λ°©ν₯μΌλ‘ λ°λ³΅(μ볡) |
animation-fill-mode
#
μ λλ©μ΄μ μ μ ν μν(μμΉ)λ₯Ό μ€μ - κ°λ³ μμ±
#
μμ± κ°κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
none | κΈ°μ‘΄ μμΉμμ μμ -> μ λλ©μ΄μ μμ μμΉλ‘ μ΄λ -> λμ -> κΈ°μ‘΄ μμΉμμ λ | none |
forwards | κΈ°μ‘΄ μμΉμμ μμ -> μ λλ©μ΄μ μμ μμΉλ‘ μ΄λ -> λμ -> μ λλ©μ΄μ λ μμΉμμ λ | |
backwards | μ λλ©μ΄μ μμ μμΉμμ μμ -> λμ -> κΈ°μ‘΄ μμΉμμ λ | |
both | μ λλ©μ΄μ μμ μμΉμμ μμ -> λμ -> μ λλ©μ΄μ λ μμΉμμ λ |
π animation-fill-mode by park young woong
animation-play-state
#
μ λλ©μ΄μ μ μ¬μκ³Ό μ μ§λ₯Ό μ€μ - κ°λ³ μμ±
κ° | μλ―Έ | κΈ°λ³Έκ° |
---|---|---|
running | μ λλ©μ΄μ μ λμ | running |
paused | μ λλ©μ΄μ λμμ μ μ§ |
#
Referenceν¨μ€νΈμΊ νΌμ€ - νλ‘ νΈμλ κ°λ° κ°μ - HTML & CSS, SASS(SCSS) Part by ParkYoungWoong