@keyframes
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 9ì.
* Some parts of this feature may have varying levels of support.
@keyframes @ê·ì¹ì ê°ë°ìê° ì ëë©ì´ì
ì¤ê°ì¤ê°ì í¹ì ì§ì ë¤ì ê±°ì¹ ì ìë í¤íë ìë¤ì ì¤ì í¨ì¼ë¡ì¨ CSS ì ëë©ì´ì
ê³¼ì ì ì¤ê° ì 차를 ì ì´í ì ìê² í©ëë¤. ì´ë¥¼ íµí´ ë¸ë¼ì°ì ê° transitionsì¼ë¡ ì ëë©ì´ì
ì ì²ë¦¬íë ê² ë³´ë¤ ë ì¸ë°íê² ì¤ê° ëìë¤ì ì ì´í ì ììµëë¤.
구문
@keyframes slidein {
from {
transform: translateX(0%);
}
to {
transform: translateX(100%);
}
}
ê°
<custom-ident>-
keyframe 목ë¡ì ìë³íë ì´ë¦ì ëë¤. ì´ ì´ë¦ì CSS 구문ìì ìì±ë ìë³ìì ì¼ì¹í´ì¼ í©ëë¤.
from-
ìì offsetì¸
0%ì ëë¤. to-
ë§ì§ë§ offsetì¸
100%ì ëë¤. <percentage>-
ì ì²´ ì ëë©ì´ì ìê° ì¤ ëª ìë keyframeì´ ë°ìí´ì¼ íë ìì ì %ì ëë¤.
<timeline-range-name><percentage>-
ì§ì ë
animation-range를 íµê³¼í ìê° ì¤ ì§ì ë í¤ íë ìì´ ë°ìí´ì¼ íë ìê°ì ë°±ë¶ì¨ì ëë¤. íìë¼ì¸ ë²ì를 ì¬ì©íë ì ëë©ì´ì ì ì¢ ë¥ì ëí ìì¸í ì¬íì CSS ì¤í¬ë¡¤ ê¸°ë° ì ëë©ì´ì ì ì°¸ê³ íì¸ì.
ì¤ëª
í¤íë ìì ì¬ì©íë ¤ë©´ @keyframes 룰ì ì ëë©ì´ì
ê³¼ í¤íë ì 리ì¤í¸ë¥¼ 매ì¹ìí¬ animation-name ìì±ì¼ë¡ ì¬ì©í ì´ë¦ê³¼ í¨ê» ìì±í©ëë¤. ê° @keyframes 룰ì í¤íë ì ì íìì ì¤íì¼ ë¦¬ì¤í¸ë¥¼ í¬í¨íê³ ìê³ , ê° ë¦¬ì¤í¸ë ê° í¤íë ìì´ ìì±ëê³ í¤íë ìì ì¤íì¼ ì 보를 í¬í¨íê³ ìë ì§ì ìì ì¬ì©í %ë¡ êµ¬ì±ë©ëë¤.
í¤íë ìì %를 ê¼ ììëë¡ ëì´íì§ ìëë¼ë, %ì ììëë¡ ì²ë¦¬ë©ëë¤.
JavaScriptë @keyframes @ê·ì¹ì CSS ì¤ë¸ì í¸ ëª¨ë¸ ì¸í°íì´ì¤ì¸ CSSKeyframesRule를 íµí´ì ì ê·¼í ì ììµëë¤.
ì í¨í í¤íë ì 리ì¤í¸
ë§ì½ í¤íë ìì´ ìì ìíì ë ì ëë©ì´ì
(ì´ë 0%/from ê³¼ 100%/to를 ë§í©ëë¤)ì ëª
ìíì§ ìëë¤ë©´, ë¸ë¼ì°ì ë ì²ìê³¼ ë§ì§ë§ì íì¬ ì¡´ì¬íë ììì ì¤íì¼ì ì¬ì©í©ëë¤. ì´ë ììì ì ëë©ì´ì
ì ì´ê¸° ìíìì ë¤ì ììíê³ ëëìê°ë ë° ì¬ì©ë ì ììµëë¤.
ë§ì½ í¤ íë ì 룰ì ì ëë©ì´ì ì´ ëì§ ìë ìì±ì í¬í¨íë©´ 무ìëì§ë§, ì ëë©ì´ì ì ì§ìíë ìì±ë¤ì ì ëë©ì´ì ì´ ë©ëë¤.
ì¤ë³µ ì²ë¦¬
ë§ì½ íê°ì ì´ë¦ì ëí´ì ì¬ë¬ê°ì í¤íë ì ì
ì´ ì¡´ì¬íë©´, íìê° ë§ì§ë§ì¼ë¡ ë§ì£¼ì¹ë í¤íë ì ì
ë§ ì í¨í©ëë¤. @keyframes 룰ì ìºì¤ì¼ì´ë ëì§ ì기 ë문ì íê°ì 룰 ì
ì´ìì ì ì©íì§ ììµëë¤.
ë§ì½ ì ëë©ì´ì
ë¤ì ìê° offsetì´ ì¤ë³µë ê²½ì°, í´ë¹ %ì ëí 모ë @keyframes ê·ì¹ë¤ì´ í´ë¹ íë ìì ì ì©ë©ëë¤. ëì¼í % ê°ì ê°ì§ ì¬ë¬ @keyframes ê·ì¹ë¤ì ìºì¤ì¼ì´ë ë©ëë¤.
í¤ íë ìì ìì±ì´ ëë½ë ê²½ì°
ì´ë¤ í¤ íë ììë ì ìëì§ ìì ìì±ë¤ì ì¤ê°ì ê°ë¥í ê³³ì ì½ì ëë©°, ì½ì ì´ ê°ë¥íì§ ìì ì ëë©ì´ì ë¤ì ì ì¸ë©ëë¤. ììë ìëì ê°ìµëë¤.
@keyframes identifier {
0% {
top: 0;
left: 0;
}
30% {
top: 50px;
}
68%,
72% {
left: 50px;
}
100% {
top: 100px;
left: 100%;
}
}
ì¬ê¸° top ìì±ì 0%, 30%, 100% í¤ íë ìì ì´ì©íì¬ ì ëë©ì´ì
ë©ëë¤. left ìì±ì 0%, 68%, 72%, 100% í¤ íë ìì ì¬ì©í´ ì ëë©ì´ì
ë©ëë¤.
í¤ íë ìì´ ì¬ë¬ë² ì ì ë ê²½ì°
í¤íë ìì´ ì¬ë¬ ë² ì ìëìì§ë§ ìí¥ì ë°ë 모ë ìì±ì´ ê° í¤íë ìì ìë ê²ì ìëë¼ë©´ ì´ë¬í í¤íë ìì ì§ì ë 모ë ê°ì´ ê³ ë ¤ë©ëë¤. ììë ìëì ê°ìµëë¤.
@keyframes identifier {
0% {
top: 0;
}
50% {
top: 30px;
left: 20px;
}
50% {
top: 10px;
}
100% {
top: 0;
}
}
ì´ ìì 를 ë³´ë©´ 50% í¤íë ìììë top: 10pxê³¼ left: 20px ë§ ì ì©ë©ëë¤.
í¤ íë ì í¨ê³¼ ì°ìì Firefox 14ë¶í° ì§ìë©ëë¤. ì´ ì미ë ì ìì ì ê²½ì° 50% í¤ íë ììì ì¼ìª½ : 20px ê°ì´ ê³ ë ¤ëë¤ë ì미ì ëë¤. ì´ë¬í 기ë¥ì´ ì¤íìë ìì§ ì ìê° ëì´ìì§ ìì§ë§, íì¬ ëì ì ëí í ë¡ ì´ ì§í ì¤ì ëë¤.
í¤íë ìììì !important
í¤íë ììì !important ìì±ì ì´ì©í ì ìë 모ë 무ìë©ëë¤.
@keyframes important1 {
from {
margin-top: 50px;
}
50% {
margin-top: 150px !important;
} /* ignored */
to {
margin-top: 100px;
}
}
@keyframes important2 {
from {
margin-top: 50px;
margin-bottom: 100px;
}
to {
margin-top: 150px !important; /* ignored */
margin-bottom: 50px;
}
}
íì 구문
@keyframes =
@keyframes <keyframes-name> { <qualified-rule-list> }
<keyframes-name> =
<custom-ident> |
<string>
ìì
CSS ì ëë©ì´ì ìì ìì 를 ì°¸ê³ íì¸ì.
CSS ì ëë©ì´ì ìì
ìì ë CSS ì ëë©ì´ì ì¬ì©í기ì ì¤í¬ë¡¤ ê¸°ë° ì ëë©ì´ì ì¼ë¡ ì¤í¬ë¡¤ì ììë¤ ì ëë©ì´ì í기를 ì°¸ê³ íì¸ì.
ëª ì¸ì
| Specification |
|---|
| CSS Animations Level 1 > # keyframes > |