@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 ã®ã¢ããã«ã¼ã«ã§ãã¢ãã¡ã¼ã·ã§ã³ã®æµãã«æ²¿ã£ããã¼ãã¬ã¼ã ï¼ã¾ãã¯ä¸éå°ç¹ï¼ã®ã¹ã¿ã¤ã«ãå®ç¾©ãããã¨ã«ãã£ã¦ãä¸é£ã® CSS ã¢ãã¡ã¼ã·ã§ã³ã®ä¸éã¹ããããå¶å¾¡ãã¾ããããã«ãããã¢ãã¡ã¼ã·ã§ã³ã®ä¸éã¹ãããããã©ã³ã¸ã·ã§ã³ããã詳細ã«å¶å¾¡ã§ãã¾ãã
æ§æ
@keyframes slide-in {
from {
transform: translateX(0%);
}
to {
transform: translateX(100%);
}
}
å¤
<custom-ident>-
ãã¼ãã¬ã¼ã ã®ãªã¹ããèå¥ããååããã㯠CSS æ§æã§å®ç¾©ããã¦ããèå¥åã«é©åããå¿ è¦ãããã¾ãã
from-
ã¢ãã¡ã¼ã·ã§ã³ã®å§ã¾ãã§ãã
0%ã示ãã¾ãã to-
ã¢ãã¡ã¼ã·ã§ã³ã®çµããã§ãã
100%ã示ãã¾ãã <percentage>-
æå®ãããã¼ãã¬ã¼ã ãã¢ãã¡ã¼ã·ã§ã³ã®ä¸ã§ä½åããæéã示ããã¼ã»ã³ãå¤ã§ãã
<timeline-range-name><percentage>-
æå®ããã¢ãã¡ã¼ã·ã§ã³ç¯å²ã®ãæå®ãããã¼ãã¬ã¼ã ãçºçããæç¹ã¾ã§ã®å²åãååä»ãã¿ã¤ã ã©ã¤ã³ç¯å²ã使ç¨ããã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ã«ã¤ãã¦ã¯ãCSS ã¹ã¯ãã¼ã«é§åã¢ãã¡ã¼ã·ã§ã³ãåç §ãã¦ãã ããã
解説
ãã¼ãã¬ã¼ã ã使ãã«ã¯ãã¢ãã¡ã¼ã·ã§ã³ã¨ãã®ãã¼ãã¬ã¼ã ãä¸è´ãããããã«ã animation-name ããããã£ã§æå®ãããã®ã¨åãååãã¤ãã @keyframes ã«ã¼ã«ã使ãã¾ããããããã® @keyframes ã«ã¼ã«ã¯ããã¼ãã¬ã¼ã ã»ã¬ã¯ã¿ã¼ã®ã¹ã¿ã¤ã«ãªã¹ããå«ãã§ãã¾ããããã¯ããã®ãã¼ãã¬ã¼ã ãä½åããæã®ã¢ãã¡ã¼ã·ã§ã³ã®ãã¼ã»ã³ãå¤ã¨ããã®ãã¼ãã¬ã¼ã ã§ã®ã¹ã¿ã¤ã«ãæå®ãããããã¯ã¨ã§æ§æããã¦ãã¾ãã
ãã¼ãã¬ã¼ã ã¯ä»»æã®é çªã§ä¸¦ã¹ããã¨ãã§ãã¾ãããããã¯ãä½åããæã示ããã¼ã»ã³ãå¤ã®é çªã«å¾ã£ã¦å¶å¾¡ããã¾ãã
JavaScript ã¯ã @keyframes ã¢ããã«ã¼ã«ã« CSS ãªãã¸ã§ã¯ãã¢ãã«ã® CSSKeyframesRule ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ãã£ã¦ã¢ã¯ã»ã¹ã§ãã¾ãã
æå¹ãªãã¼ãã¬ã¼ã ã®ãªã¹ã
ãã¼ãã¬ã¼ã ã«ã¼ã«ã«ã¢ãã¡ã¼ã·ã§ã³ã®éå§ã¨çµäºã®ç¶æ
(0%/from 㨠100%/to) ãæç¤ºããªãå ´åããã©ã¦ã¶ã¼ã¯ãã®è¦ç´ ã®æ¢åã®ã¹ã¿ã¤ã«ãéå§ã»çµäºã®ç¶æ
ã¨ãã¦ç¨ãã¾ããããã¯ããã®è¦ç´ ãåæç¶æ
ããã¢ãã¡ã¼ã·ã§ã³ããã¦å
ã«æ»ãã¨ããå¦çã«å©ç¨ã§ãã¾ãã
ãã¼ãã¬ã¼ã ã«ã¼ã«ã«ã¢ãã¡ã¼ã·ã§ã³ãã§ããªãããããã£ãå«ããå ´åããã®ããããã£ã¯ç¡è¦ããã¾ãããä»ã®ã¢ãã¡ã¼ã·ã§ã³ãå¯è½ãªããããã£ã«ã¤ãã¦ã¯ã¢ãã¡ã¼ã·ã§ã³ãå®è¡ããã¾ãã
éè¤ã®è§£æ±º
è¤æ°ã®ãã¼ãã¬ã¼ã ã«åãååãä»ãããã¦ããå ´åãæå¾ã«å®£è¨ããããã®ã使ç¨ããã¾ãã @keyframes ã«ã¼ã«ãã«ã¹ã±ã¼ãçã«ç¶æ¿ããããã¨ã¯ãªããããã¢ãã¡ã¼ã·ã§ã³ãè¤æ°ã®ã«ã¼ã«ã»ããã«ãããã¼ãã¬ã¼ã ããã¨ã«ãã¦è¡ããããã¨ã¯ããã¾ããã
æå®ãããã¢ãã¡ã¼ã·ã§ã³ã®ã¿ã¤ã ãªãã»ãããéè¤ãã¦ããå ´åã¯ã @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 ãã対å¿ãã¦ãã¾ãã
ãã¼ãã¬ã¼ã å
ã® !important
ãã¼ãã¬ã¼ã å
ã§ !important ãä»ãããã宣è¨ã¯ç¡è¦ããã¾ãã
@keyframes important1 {
0% {
margin-top: 50px;
}
50% {
margin-top: 150px !important; /* ç¡è¦ããã */
}
100% {
margin-top: 100px;
}
}
@keyframes important2 {
from {
margin-top: 50px;
margin-bottom: 100px;
}
to {
margin-top: 150px !important; /* ç¡è¦ããã */
margin-bottom: 50px;
}
}
形弿æ³
@keyframes =
@keyframes <keyframes-name> { <qualified-rule-list> }
<keyframes-name> =
<custom-ident> |
<string>
ä¾
>CSS ã¢ãã¡ã¼ã·ã§ã³ã®ä¾
CSS ã¢ãã¡ã¼ã·ã§ã³ã®ä½¿ç¨ããã³ã¹ã¯ãã¼ã«é§åã¢ãã¡ã¼ã·ã§ã³ãåç §ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| CSS Animations Level 1> # keyframes> |