βΆ μ λλ©μ΄μ
β
*CSSμ μ λλ©μ΄μ
CSS3μ animation μμ±μ μ¬μ©νλ©΄ μλ°μ€ν¬λ¦½νΈλ νλμλ₯Ό μ¬μ©νμ§ μκ³ λ μΉ μμμ μ λλ©μ΄μ μ μΆκ°ν μ μλ€. CSS μ λλ©μ΄μ μ μμν΄μ λλ΄λ λμ μνλ κ³³ μ΄λμλ μ€νμΌμ λ°κΎΈλ©° μ λλ©μ΄μ μ μ μν μ μλ€λ μ μΌλ νΈλμ§μ κ³Ό λ€λ₯΄λ€. μ΄ λ μ λλ©μ΄μ μ€κ°μ μ€νμΌμ΄ λ°λλ μ§μ μ ν€νλ μ(keyframe)μ΄λΌκ³ λΆλ₯Έλ€.
β
μμ± |
μ€λͺ |
@keyframes |
μ λλ©μ΄μ μ΄ λ°λλ μ§μ μ μ€μ νλ€. |
animation-delay |
μ λλ©μ΄μ μ§μ° μκ°μ μ§μ νλ€. |
animation-direction |
μ λλ©μ΄μ μ’ λ£ ν μ²μλΆν° μμν μ§, μλ°©ν₯μΌλ‘ μ§νν μ§λ₯Ό μ§μ νλ€. |
animation-duration |
μ λλ©μ΄μ μ€ν μκ°μ μ€μ νλ€. |
animation-fill-mode |
μ λλ©μ΄μ μ΄ μ’ λ£λμκ±°λ μ§μ°λμ΄ μ λλ©μ΄μ μ΄ μ€νλμ§ μλ μνμΌ λ μμμ μ€νμΌμμ§μ νλ€. |
animation-iteration-count |
μ λλ©μ΄μ λ°λ³΅ νμλ₯Ό μ§μ νλ€. |
animation-name |
@keyframesλ‘ μ€μ ν΄ λμ μ€κ° μνμ μ΄λ¦μ μ§μ νλ€. |
animation-play-state |
μ λλ©μ΄μ μ λ©μΆκ±°λ λ€μ μμνλ€. |
animation-timing-function |
μ λλ©μ΄μ μ μλ 곑μ μ μ§μ νλ€. |
animation |
animation νμ μμ±λ€μ νκΊΌλ²μ λ¬Άμ΄ μ§μ νλ€. |
β
β
β
*@keyframes μμ± - μ λλ©μ΄μ μ§μ μ€μ νκΈ°
μ λλ©μ΄μ μμ μ§μ μ ν€νλ μμ΄λΌκ³ νλ€. μ λλ©μ΄μ μ μμκ³Ό λμ λΉλ‘―ν΄ μνκ° λ°λλ λΆλΆμ΄ μλ€λ©΄ @keyframes μμ±μ μ΄μ©ν΄ λ°λλ μ§μ μ μ€μ νλ€.
β
κΈ°λ³Έν)
@keyframes <μ΄λ¦> { <μ νμ> { <μ€νμΌ> } } |
<style>
div {
width: 100px;
height: 100px;
background-color: blue;
-webkit-animation-name: change-bg;
-moz-animation-name: change-bg;
-o-animation-name: change-bg;
animation-name: change-bg;
-webkit-animation-duration: 3s;
-moz-animation-duration: 3s;
-o-animation-duration: 3s;
animation-duration: 3s;
}
@keyframes change-bg {
from { /* μ λλ©μ΄μ
μμ μμ μ€νμΌ */
background-color: blue;
border: 1px solid black;
}
to { /* μ λλ©μ΄μ
λ μμ μ€νμΌ */
background-color: #a5d6ff;
border:1px solid blue;
border-radius: 50%;
}
}
</style>
β
β
*animation-name μμ± - μ λλ©μ΄μ μ΄λ¦ μ§μ νκΈ°
CSSλ‘ μ λλ©μ΄μ μ λ§λ€ λ @keyframes μμ±μ μ΄μ©ν΄ μ¬λ¬ κ°μ μ λλ©μ΄μ μ μ μνλλ° animation-name μμ±μμ μ§μ ν μ λλ©μ΄μ μ΄λ¦μΌλ‘ ꡬλΆνλ€. μ΄ animation-name μμ±μ μ¬μ©νλ©΄ μΌμͺ½ μμ€λ‘ μ μν μ λλ©μ΄μ μ μ€λ₯Έμͺ½ μμ€μ²λΌ animation-name μμ±μ change-bgλΌλ κ°μ μ μ©ν΄ μ¬μ©ν μ μλ€.
β
κΈ°λ³Έν)
animation-name: <ν€νλ μ μ΄λ¦> | none |
<style>
#box1 {
background-color: #4cff00;
border: 1px solid black;
-webkit-animation-name: shape;
-moz-animation-name: shape;
-o-animation-name: shape;
animation-name: shape;
-webkit-animation-duration: 3s;
-moz-animation-duration: 3s;
-o-animation-duration: 3s;
animation-duration: 3s;
}
#box2 {
background-color: #8f06b0;
border: 1px solid black;
-webkit-animation-name: rotate;
-moz-animation-name: rotate;
-o-animation-name: rotatboxe;
animation-name: rotate;
-webkit-animation-duration: 3s;
-moz-animation-duration: 3s;
-o-animation-duration: 3s;
animation-duration: 3s;
}
@keyframes shape { /* λͺ¨μμ΄ λ°λλ μ λλ©μ΄μ
*/
from {
border: 1px solid black;
}
to {
border: 1px solid black;
border-radius: 50%;
}
}
@keyframes rotate { /* νμ νλ μ λλ©μ΄μ
*/
from {
transform:rotate(0deg)
}
to {
transform: rotate(45deg);
}
}
</style>
β
β
*animation-duration μμ± - μ λλ©μ΄μ μ€ν μκ° μ€μ νκΈ°
animation-duration μμ±μ μ λλ©μ΄μ μ μΌλ§ λμ μ¬μν κ²μΈμ§ μ€μ νλ€. μ¬μ©ν μ μλ κ°μ μ΄(s)λ λ°λ¦¬μ΄(ms)λ‘ νμν μκ° κ°μ΄λ€. κΈ°λ³Έ κ°μ 0μ΄κΈ° λλ¬Έμ animation-duration μμ± κ°μ μ νμ§ μμΌλ©΄ μ λλ©μ΄μ μ μΌμ΄λμ§ μλλ€.
β
κΈ°λ³Έν)
animation-duration: <μκ°> |
β
β
*animation-direction μμ± - μ λλ©μ΄μ λ°©ν₯ μ§μ νκΈ°
κΈ°λ³Έμ μΌλ‘ μ λλ©μ΄μ μ΄ ν λ² μ€νλλ©΄ μλ μμΉλ‘ λλμκ°λλ° animation-direction μμ±μ μ΄μ©νλ©΄ μλ μμΉλ‘ λλμκ°κ±°λ λ°λ λ°©ν₯μΌλ‘ μ λλ©μ΄μ μ ν λ² λ μ€νν μ μλ€.
μμ± κ° |
μ€λͺ |
normal |
μ λλ©μ΄μ μ λκΉμ§ μ€ννλ©΄ μλ μλ μμΉλ‘ λμκ°λ€. |
alternate |
μ λλ©μ΄μ μ λκΉμ§ μ€ννλ©΄ μλ λ°©ν₯μΌλ‘ λλμκ°λ©΄μ μ λλ©μ΄μ μ μ€ννλ€. |
β
β
β
*animation-iteration-count μμ± - λ°λ³΅ νμ μ§μ νκΈ°
κΈ°λ³Έμ μΌλ‘ μ λλ©μ΄μ μ ν λ²λ§ μ€ννκ³ λλλλ°, λ°λ³΅ μ€νν μλ μλ€. κ·Έλ΄λ animation-iteration-count μμ±μ μ¬μ©ν΄ λ°λ³΅ νμλ₯Ό μ§μ ν μ μλ€.
<style>
.box {
margin-top: 50px;
margin-left: 100px;
padding: 20px;
height: 60px;
-webkit-animation-name: moving;
-moz-animation-name: moving;
-o-animation-name: moving;
animation-name: moving;
-webkit-animation-duration: 3s;
-moz-animation-duration: 3s;
-o-animation-duration: 3s;
animation-duration: 3s;
-webkit-animation-direction: normal;
-moz-animation-direction: normal;
-o-animation-direction: normal;
animation-direction: normal; /* μ λλ©μ΄μ
μ΄ λλ ν λ°λ λ°©ν₯μΌλ‘ μ€ννμ§ μμ */
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;
animation-iteration-count: infinite; β/* μ λλ©μ΄μ
μ΄ λλ ν 무ν λ°λ³΅ν¨ */
}
β
@keyframes moving {
from {
width: 200px;
background: #faef7c;
opacity: 0.5;
transform: scale(0.5) rotate(15deg);
}
to {
width: 400px;
background: #ff9400;
opacity: 1;
transform: scale(1) rotate(0deg);
}
}
</style>
<body>
<div class="box">
<h3>CSS3 Animation</h3>
</div>
</body>
β
β
*animation-timing-function μμ± - μ λλ©μ΄μ μλ 곑μ μ§μ νκΈ°
νΈλμ§μ κ³Ό λ§μ°¬κ°μ§λ‘ μ λλ©μ΄μ μμλ μ λλ©μ΄μ μ μμκ³Ό μ€κ°, λμμμ μλλ₯Ό μ νν΄ μ 체μ μΈ μλ 곑μ μ μ§μ ν μ μλ€.
β
κΈ°λ³Έν)
animation-timing-function: linear | ease | ease-in | ease-out | ease-in-out | cubic-bezier(n, n, n, n) |
β
β
*animation μμ± - μ λλ©μ΄μ κ΄λ ¨ μμ± νκΊΌλ²μ νκΈ°νκΈ°
κΈΈκ³ λ³΅μ‘ν μ λλ©μ΄μ κ΄λ ¨ μμ±λ€λ animation μμ±μ μ¬μ©νλ©΄ κ°λ¨ν ν μ€λ‘ νκΈ°ν μ μλ€.
μ΄λ κ² κ°λ΅ν νκΈ°ν΄ κΈ°λ³Έ κ°μ μ¬μ©νλλΌλ animation-duration μμ± κ°μ λ°λμ νκΈ°ν΄μΌ νλ€. μ λλ©μ΄μ μ€ν μκ°μ μ§μ νμ§ μμΌλ©΄ κΈ°λ³Έ κ° 0μ΄ μ μ©λμ΄ μ λλ©μ΄μ ν¨κ³Όλ₯Ό λ³Ό μ μκΈ° λλ¬Έμ΄λ€.
β
κΈ°λ³Έν)
animation : <animation-name> | <animation-duration> | <animation-timing-function> | <animation-delay> | <animation-iteration-count> | <animation-direction> |
<style>
.box {
width: 60px;
height: 60px;
margin: 60px;
-webkit-animation: rotate 1.5s infinite, background 1.5s infinite alternate;
-moz-animation: rotate 1.5s infinite, background 1.5s infinite alternate;
-o-animation: rotate 1.5s infinite, background 1.5s infinite alternate;
animation: rotate 1.5s infinite, background 1.5s infinite alternate;
}
β
@keyframes rotate { /* μ€κ°(50%)μ xμΆ κΈ°μ€μΌλ‘ νμ νκ³ λλ λ(100%) yμΆ κΈ°μ€μΌλ‘ νμ νλ€ */
from { transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
50% { transform: perspective(120px) rotateX(-180deg) rotateY(0deg); }
to { transform: perspective(120px) rotateX(-180deg) rotateY(-180deg); }
}
β
@keyframes background { /* μ²μμλ λΉ¨κ°μ λ°°κ²½μ΄μλ€κ° μ€κ°μ μ΄λ‘μμΌλ‘ λ°λ ν λλ λλ νλμ λ°°κ²½ */
from { background: red; }
50% { background-color: green }
to { background-color: blue; }
}
</style>
</head>
β
<body>
<div class="box"></div>
</body>
'HTML5 & CSS3' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[HTML5 & CSS3] κ°λ³ 그리λ λ μ΄μμ (0) | 2021.02.14 |
---|---|
[HTML5 & CSS3] λͺ¨λ°μΌ κΈ°κΈ°μ μΉ λμμΈ (0) | 2021.02.14 |
[HTML5 & CSS3] νΈλμ§μ (0) | 2021.02.14 |
[HTML5 & CSS3] λ³νκ³Ό κ΄λ ¨λ μμ±λ€ (0) | 2021.02.14 |
[HTML5 & CSS3] λ³ν (0) | 2021.02.14 |
λκΈ