CSSã®@starting-styleã§ã¢ãã¡ãŒã·ã§ã³ã®åæç¶æ ãæ£ç¢ºã«å¶åŸ¡ããããããããã€ã¹ã§ã¹ã ãŒãºãªãã©ã³ãžã·ã§ã³ãšäºæž¬å¯èœãªãŠãŒã¶ãŒäœéšãå®çŸããŸãã
CSSã®@starting-styleããã¹ã¿ãŒããïŒã¢ãã¡ãŒã·ã§ã³ã®åæç¶æ ã®å®çŸ©
Webéçºã®ãã€ãããã¯ãªäžçã«ãããŠãã¢ãã¡ãŒã·ã§ã³ã¯ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžãèŠèŠçãªãã£ãŒãããã¯ã®æäŸããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®èªå°ã«ãããŠéèŠãªåœ¹å²ãæãããŸããCSSã®ã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ã¯å€§å¹
ã«é²åããŠããŸããããç¹ã«ãŠãŒã¶ãŒã®æäœãç¶æ
å€åã«ãã£ãŠããªã¬ãŒãããå Žåãã¢ãã¡ãŒã·ã§ã³ã®åæç¶æ
ãæ£ç¢ºã«å¶åŸ¡ããããšã¯ããã°ãã°åŸ®åŠãªèª²é¡ãæç€ºããŠããŸãããããã§ç»å Žããã®ãããã®åé¡ããšã¬ã¬ã³ãã«è§£æ±ºããããã«èšèšããã匷åãªCSSæ©èœã§ãã@starting-style
ã¢ããã«ãŒã«ã§ãã
課é¡ãçè§£ããïŒã¢ãã¡ãŒã·ã§ã³ã®æåã®ãã¬ãŒã
åŸæ¥ãã¢ãã¡ãŒã·ã§ã³ããã©ã³ãžã·ã§ã³ãèŠçŽ ã«é©çšããããšããã®åæç¶æ ã¯ãã¢ãã¡ãŒã·ã§ã³/ãã©ã³ãžã·ã§ã³ãéå§ãããç¬éã®èŠçŽ ã®çŸåšã®èšç®æžã¿ã¹ã¿ã€ã«ã«ãã£ãŠæ±ºå®ãããŸããããã¯ãç¹ã«æ¬¡ã®ãããªã·ããªãªã§ãäºæããªãèŠèŠçãªãžã£ã³ããäžæŽåãåŒãèµ·ããå¯èœæ§ããããŸãïŒ
- ããŒãžéã®ç§»åïŒæ°ããããŒãžã§ã³ã³ããŒãã³ããã¢ãã¡ãŒã·ã§ã³ã§è¡šç€ºãããéãæ éã«åŠçããªããšããã®åæã¹ã¿ã€ã«ãæå³ãããã®ãšç°ãªãå ŽåããããŸãã
- ãããŒãŸãã¯ãã©ãŒã«ã¹æã®ã¢ãã¡ãŒã·ã§ã³ã®ããªã¬ãŒïŒã¢ãã¡ãŒã·ã§ã³ãã¹ã ãŒãºã«åŒãç¶ãåã«ãèŠçŽ ã®ã¹ã¿ã€ã«ãäžç¬ç¹æ» ãããå€åãããããããšããããŸãã
- JavaScriptãä»ããŠé©çšãããã¢ãã¡ãŒã·ã§ã³ïŒJavaScriptãã¢ãã¡ãŒã·ã§ã³ãããªã¬ãŒããã¯ã©ã¹ãåçã«è¿œå ããå Žåãã¯ã©ã¹ã远å ãããçŽåã®èŠçŽ ã®ç¶æ ãã¢ãã¡ãŒã·ã§ã³ã®éå§ã«åœ±é¿ããŸãã
display: none
ãvisibility: hidden
ãå«ãã¢ãã¡ãŒã·ã§ã³ïŒåæç¶æ ã§ã¬ã³ããªã³ã°ãããŠããªãèŠçŽ ã¯ã衚瀺ããããŸã§ã¢ãã¡ãŒã·ã§ã³ã«åå ã§ãããã¹ã ãŒãºãªç»å Žã§ã¯ãªãçªç¶ã®è¡šç€ºã«ã€ãªãããŸãã
ç°¡åãªäŸãèããŠã¿ãŸãããïŒèŠçŽ ããã§ãŒãã€ã³ãããŠã¹ã±ãŒã«ã¢ãããããããšããŸããèŠçŽ ãæåã«opacity: 0
ãštransform: scale(0.5)
ãæã¡ããã®åŸopacity: 1
ãštransform: scale(1)
ãã¿ãŒã²ãããšããCSSã¢ãã¡ãŒã·ã§ã³ãé©çšãããå Žåãã¢ãã¡ãŒã·ã§ã³ã¯çŸåšã®ç¶æ
ïŒé衚瀺ã§çž®å°ïŒããéå§ãããŸããããã¯æåŸ
éãã«æ©èœããŸããããããèŠçŽ ãæåã«opacity: 1
ãštransform: scale(1)
ãæã¡ããã®åŸopacity: 0
ãšscale(0.5)
ããéå§ãããã¹ãã¢ãã¡ãŒã·ã§ã³ãé©çšãããå Žåã¯ã©ãã§ããããïŒ@starting-style
ããªããã°ãã¢ãã¡ãŒã·ã§ã³ã¯èŠçŽ ã®æ¢åã®opacity: 1
ãšscale(1)
ããéå§ãããæå³ããéå§ç¹ãäºå®äžã¹ãããããŠããŸããŸãã
@starting-style
ã®ç޹ä»ïŒè§£æ±ºç
@starting-style
ã¢ããã«ãŒã«ã¯ãèŠçŽ ãæåã«ããã¥ã¡ã³ãã«å°å
¥ããããšãããŸãã¯æ°ããç¶æ
ã«å
¥ã£ããšãã«é©çšãããCSSã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ã®åæå€ã宣èšçã«å®çŸ©ããæ¹æ³ãæäŸããŸããããã«ãããäœææãŸãã¯ãã©ã³ãžã·ã§ã³éå§æã®èŠçŽ ã®ããã©ã«ãã¹ã¿ã€ã«ãšã¯ç¡é¢ä¿ã«ãã¢ãã¡ãŒã·ã§ã³ãéå§ããäžé£ã®ã¹ã¿ã€ã«ãæå®ã§ããŸãã
ç¹ã«ä»¥äžã®ãã®ãšçµã¿åãããŠäœ¿çšãããšåŒ·åã§ãïŒ
@keyframes
ã¢ãã¡ãŒã·ã§ã³ïŒ0%
ïŒãŸãã¯from
ïŒã§å§ãŸããªãå¯èœæ§ã®ããã¢ãã¡ãŒã·ã§ã³ã®åæç¶æ ãå®çŸ©ããŸãã- CSSãã©ã³ãžã·ã§ã³ïŒãã©ã³ãžã·ã§ã³ãé©çšãããŠããªãç¶æ ãããã©ã³ãžã·ã§ã³ã®éå§ãŸã§ã¹ã ãŒãºãªç§»è¡ãä¿èšŒããŸãã
@starting-style
ã@keyframes
ãšå
±ã«æ©èœããæ¹æ³
@starting-style
ã@keyframes
ã¢ãã¡ãŒã·ã§ã³ãšå
±ã«äœ¿çšãããšãã¢ãã¡ãŒã·ã§ã³ã®æåã®ããŒãã¬ãŒã ïŒéåžžã¯0%
ãŸãã¯from
ããŒãã¬ãŒã ïŒãæå¹ã«ãªã*å*ã«é©çšãããã¹ãã¹ã¿ã€ã«ãæå®ã§ããŸããããã¯ã'é衚瀺'ãŸãã¯'æããããŸãã'ç¶æ
ããéå§ããå¿
èŠãããããèŠçŽ ããã以å€ã®å Žåã¯ããã©ã«ãã®è¡šç€ºã¹ã¿ã€ã«ã§ã¬ã³ããªã³ã°ãããå¯èœæ§ãããã¢ãã¡ãŒã·ã§ã³ã«ç¹ã«äŸ¿å©ã§ãã
æ§æã¯ç°¡åã§ãïŒ
@keyframes fadeAndScale {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0.5);
}
}
.my-element {
/* Other styles */
animation: fadeAndScale 1s ease-out forwards;
}
@starting-style {
opacity: 0;
transform: scale(0.5);
}
ãã®äŸã§ã¯ã.my-element
ã¯ãã§ãŒãã¢ãŠãããŠçž®å°ããããšãæå³ãããŠããŸããããæåã«opacity: 1
ãštransform: scale(1)
ã§ã¬ã³ããªã³ã°ãããå Žåãfrom { opacity: 1; transform: scale(1); }
ããå§ãŸãã¢ãã¡ãŒã·ã§ã³ã¯ããã§ã«'from'ã®ç¶æ
ã«ãããããç¬æã«èŠããã§ãããããããã@starting-style
ã䜿çšããããšã§ããã©ãŠã¶ã«æç€ºçã«æ¬¡ã®ããã«äŒããŸãïŒ
- ãã®ã¢ãã¡ãŒã·ã§ã³ãéå§ããããšããèŠçŽ ã¯èŠèŠçã«
opacity: 0
ã§æºåãããã¹ãã§ãã - ãããŠããã®transformã¯
scale(0.5)
ã§ããã¹ãã§ãã
ããã«ãããèŠçŽ ã®èªç¶ãªç¶æ
ãç°ãªã£ãŠããŠããã¢ãã¡ãŒã·ã§ã³ã¯æå®ãããéå§å€ããæ£ããã·ãŒã±ã³ã¹ãéå§ããããšãä¿èšŒãããŸãããã©ãŠã¶ã¯ãããã®@starting-style
ã®å€ã广çã«é©çšãããããã®å€ããfrom
ããŒãã¬ãŒã ãéå§ããto
ããŒãã¬ãŒã ã«é²ã¿ãŸããã¢ãã¡ãŒã·ã§ã³ãforwards
ã«èšå®ãããŠããå Žåãã¢ãã¡ãŒã·ã§ã³å®äºåŸãto
ããŒãã¬ãŒã ã®æçµç¶æ
ãç¶æãããŸãã
@starting-style
ããã©ã³ãžã·ã§ã³ãšå
±ã«æ©èœããæ¹æ³
CSSãã©ã³ãžã·ã§ã³ãèŠçŽ ã«é©çšããããšããã©ã³ãžã·ã§ã³ãçºçãã*å*ã®èŠçŽ ã®ã¹ã¿ã€ã«ãšããã©ã³ãžã·ã§ã³ãçºçãã*åŸ*ã®ã¹ã¿ã€ã«ãšã®éãã¹ã ãŒãºã«è£éããŸãã課é¡ã¯ããã©ã³ãžã·ã§ã³ãããªã¬ãŒããç¶æ ãåçã«è¿œå ãããå ŽåããèŠçŽ ã®ããã©ã«ãã®ã¬ã³ããªã³ã°ç¶æ ã§ã¯ãªãç¹å®ã®ãã€ã³ããããã©ã³ãžã·ã§ã³ãéå§ãããå Žåã«çºçããŸãã
ãããŒæã«ã¹ã±ãŒã«ã¢ãããããã¿ã³ãèããŠã¿ãŸããããããã©ã«ãã§ã¯ããã©ã³ãžã·ã§ã³ã¯ãã¿ã³ã®éãããŒç¶æ ãããããŒç¶æ ãžã¹ã ãŒãºã«ç§»è¡ããŸãã
.my-button {
transition: transform 0.3s ease;
}
.my-button:hover {
transform: scale(1.1);
}
ããã¯å®å
šã«åé¡ãªãåäœããŸãããã©ã³ãžã·ã§ã³ã¯ãã¿ã³ã®ããã©ã«ãã®transform: scale(1)
ããtransform: scale(1.1)
ãžãšéå§ãããŸãã
ããŠããã¿ã³ãã¹ã±ãŒã«ã¢ãã广ã§ã¢ãã¡ãŒã·ã§ã³*ã€ã³*ãããã®åŸãããŒã§*ããã«*ã¹ã±ãŒã«ã¢ããããããã«ããããšæ³åããŠã¿ãŠãã ããããã¿ã³ãæåã«ãã«ãµã€ãºã§è¡šç€ºãããå ŽåããããŒã®ãã©ã³ãžã·ã§ã³ã¯ç°¡åã§ãããããããã¿ã³ããã§ãŒãã€ã³ãšã¹ã±ãŒã«ã¢ããã®ã¢ãã¡ãŒã·ã§ã³ã䜿çšããŠè¡šç€ºããããããŒå¹æãå ã®ç¶æ ã§ã¯ãªã*çŸåš*ã®ç¶æ ããã¹ã ãŒãºã«ã¹ã±ãŒã«ã¢ããããããå Žåã¯ã©ãã§ããããïŒ
ããã§@starting-style
ãéåžžã«äŸ¡å€ãçºæ®ããŸããããã«ãããåããŠã¬ã³ããªã³ã°ãããèŠçŽ ïŒäŸïŒJavaScriptãããŒãžèªã¿èŸŒã¿ã«ãã£ãŠã³ã³ããŒãã³ããDOMã«å
¥ãå ŽåïŒã«ãã©ã³ãžã·ã§ã³ãé©çšãããéã®åæç¶æ
ãå®çŸ©ã§ããŸãã
èŠçŽ ããã§ãŒãã€ã³ããŠã¹ã±ãŒã«ã¢ãããããã®åŸãããŒã§ããã«ã¹ã±ãŒã«ã¢ããããã¹ãã ãšããŸãããããšã³ããªãŒã«ã¯ã¢ãã¡ãŒã·ã§ã³ã䜿çšãããããŒå¹æã«ã¯ãã©ã³ãžã·ã§ã³ã䜿çšã§ããŸãïŒ
@keyframes fadeInScale {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}
.animated-card {
opacity: 0;
transform: scale(0.8);
animation: fadeInScale 0.5s ease-out forwards;
transition: transform 0.3s ease;
}
.animated-card:hover {
transform: scale(1.1);
}
/* Define the starting style for the initial entry animation */
@starting-style {
opacity: 0;
transform: scale(0.8);
}
ãã®ã·ããªãªã§ã¯ã@starting-style
ã«ãŒã«ã¯ãèŠçŽ ãopacity: 0
ãštransform: scale(0.8)
ã§ã¬ã³ããªã³ã°ãéå§ããããšãä¿èšŒããfadeInScale
ã¢ãã¡ãŒã·ã§ã³ã®from
ããŒãã¬ãŒã ãšäžèŽãããŸããã¢ãã¡ãŒã·ã§ã³ãå®äºããèŠçŽ ãopacity: 1
ãštransform: scale(1)
ã«èœã¡çããšããããŒå¹æã®ãã©ã³ãžã·ã§ã³ã¯ãã®ç¶æ
ããtransform: scale(1.1)
ãžãšã¹ã ãŒãºã«è£éããŸããããã§ã®@starting-style
ã¯ãç¹ã«ã¢ãã¡ãŒã·ã§ã³ã®åæé©çšã«åœ±é¿ãäžãããããæãŸããèŠèŠçãªãã€ã³ãããéå§ãããããšãä¿èšŒããŸãã
éèŠãªã®ã¯ã@starting-style
ã¯ããã¥ã¡ã³ãã«æ°ããæ¿å
¥ãããèŠçŽ ã«é©çšããããã©ã³ãžã·ã§ã³ã«é©çšå¯èœã§ãããšããããšã§ããèŠçŽ ããã§ã«ååšãããã®ã¹ã¿ã€ã«ããã©ã³ãžã·ã§ã³ããããã£ãå«ãããã«å€æŽãããå Žåããã®èŠçŽ ãæ°ããã¬ã³ããªã³ã°ãããŠããªããã°ã@starting-style
ã¯ãã®ç¹å®ã®ãã©ã³ãžã·ã§ã³ã®éå§ã«çŽæ¥åœ±é¿ããŸããã
ãã©ãŠã¶ã®ãµããŒããšå®è£
@starting-style
ã¢ããã«ãŒã«ã¯ãCSS仿§ãžã®æ¯èŒçæ°ããè¿œå æ©èœã§ãããã®æ®åç¶æ³ã¯ä»¥äžã®éãã§ãïŒ
- ChromeãšEdgeã¯åªãããµããŒããæäŸããŠããŸãã
- Firefoxã¯è¯å¥œãªãµããŒããæäŸããŠããŸãã
- Safariãè¯å¥œãªãµããŒããæäŸããŠããŸãã
åžžã«Can I Useã§ææ°ã®ãã©ãŠã¶äºææ§æ
å ±ã確èªããããšããå§ãããŸãã@starting-style
ããµããŒãããŠããªããã©ãŠã¶ã§ã¯ãã¢ãã¡ãŒã·ã§ã³ããã©ã³ãžã·ã§ã³ã¯ãåŒã³åºãæç¹ã§ã®èŠçŽ ã®æ¢åã®èšç®æžã¿ã¹ã¿ã€ã«ã«ãã©ãŒã«ããã¯ããŸããããã¯ãåè¿°ãããããªçæ³çãšã¯èšããªãåäœã«ãªãå¯èœæ§ããããŸãã
ãã¹ããã©ã¯ãã£ã¹ãšé«åºŠãªäœ¿ãæ¹
1. äžè²«æ§ãéµ
@starting-style
ã䜿çšããŠãèŠçŽ ãDOMã«ã©ã®ããã«å°å
¥ãããããããã®åæã®èšç®æžã¿ã¹ã¿ã€ã«ãã©ãã§ãããã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ãäžè²«ããŠéå§ãããããã«ããŸããããã«ãããããäºæž¬å¯èœã§æŽç·ŽããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãä¿é²ãããŸãã
2. ããŒãã¬ãŒã ãæŽçãã
åæç¶æ
ïŒäŸïŒopacity: 0
ïŒãå¿
èŠãšãããã¹ãŠã®ã¢ãã¡ãŒã·ã§ã³ã®from
ããŒãã¬ãŒã ã«è¿œå ãã代ããã«ã@starting-style
ã§äžåºŠå®çŸ©ããããšãã§ããŸããããã«ããã@keyframes
ã«ãŒã«ãããã¯ãªãŒã³ã«ãªããã¢ãã¡ãŒã·ã§ã³ã®äžæ žçãªé²è¡ã«éäžã§ããŸãã
3. è€éãªç¶æ å€åã®åŠç
è€æ°ã®ç¶æ
å€åãã¢ãã¡ãŒã·ã§ã³ãçµãã³ã³ããŒãã³ãã®å Žåã@starting-style
ã¯èŠçŽ ã远å ãŸãã¯æŽæ°ãããéã®åæã®å€èгã管çããã®ã«åœ¹ç«ã¡ãŸããäŸãã°ãã³ã³ããŒãã³ããé »ç¹ã«ããŠã³ãããã³ã¢ã³ããŠã³ããããã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒSPAïŒã§ã¯ã@starting-style
ã§ãšã³ããªãŒã¢ãã¡ãŒã·ã§ã³ã®éå§ã¹ã¿ã€ã«ãå®çŸ©ããããšã§ãã¹ã ãŒãºãªè¡šç€ºãä¿èšŒãããŸãã
4. ããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé
@starting-style
èªäœãæ¬è³ªçã«ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããããã§ã¯ãããŸãããããããå¶åŸ¡ããã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ã¯åœ±é¿ããŸããåžžã«ãã©ãŠã¶ãå¹ççã«åŠçã§ããããããã£ãäŸãã°transform
ãopacity
ãªã©ãã¢ãã¡ãŒã·ã§ã³åããããã«åªããŠãã ãããwidth
ãheight
ãmargin
ãªã©ã®ããããã£ãã¢ãã¡ãŒã·ã§ã³åããããšã¯ãã³ã¹ãã®ãããã¬ã€ã¢ãŠãã®åèšç®ãåŒãèµ·ããå¯èœæ§ããããããå¯èœã§ããã°é¿ããŠãã ããã
5. å€ããã©ãŠã¶ã®ããã®ãã©ãŒã«ããã¯
@starting-style
ããµããŒãããŠããªããã©ãŠã¶ã®ãŠãŒã¶ãŒã«åççãªäœéšãä¿èšŒããããã«ããã©ãŒã«ããã¯ã¹ã¿ã€ã«ãæäŸã§ããŸãããããã¯ãã¢ãã¡ãŒã·ã§ã³ãããã§ãªããã°éå§ããã§ãããèŠçŽ ã®èªç¶ãªåæã¹ã¿ã€ã«ã§ããå€ãã®å Žåãã¢ãã¡ãŒã·ã§ã³ãåçŽã§ããã°ã@starting-style
ãªãã®ããã©ã«ãã®åäœã§ã蚱容ã§ãããããããŸããã
ããè€éãªã·ããªãªã§ã¯ããã©ãŠã¶ã®ãµããŒããæ€åºããããç¹å®ã®åæã¹ã¿ã€ã«ãé©çšãããããããã«JavaScriptãå¿
èŠã«ãªãå ŽåããããŸãããããã@starting-style
ã®ç®æšã¯ããã®ãããªJavaScriptã®ä»å
¥ã®å¿
èŠæ§ãæžããããšã§ãã
6. ã°ããŒãã«ãªãŒããšããŒã«ãªãŒãŒã·ã§ã³
ã°ããŒãã«ãªèŠèŽè
åãã«éçºããå Žåãã¢ãã¡ãŒã·ã§ã³ã¯å
æ¬çã§ãããåœåºæã®èŠèŠçãªæãããã«äŸåããã¹ãã§ã¯ãããŸããã@starting-style
ã¢ããã«ãŒã«ã¯ãæåçãªæèãšã¯ç¬ç«ããŠåäœããæè¡çãªCSSæ©èœã§ãããã®äŸ¡å€ã¯ãæåçã«é
æ
®ããæ¹æ³ã§ã¹ã¿ã€ã«èšå®ããã³é©çšã§ããã¢ãã¡ãŒã·ã§ã³ã®ãäžè²«ããæè¡çåºç€ãæäŸããããšã«ãããŸããç°ãªãããã€ã¹ããããã¯ãŒã¯æ¡ä»¶äžã§ã¹ã ãŒãºãªã¢ãã¡ãŒã·ã§ã³ã確ä¿ããããšã¯ãWebéçºè
ã«ãšã£ãŠæ®éçãªç®æšã§ããã@starting-style
ã¯ãã®äžè²«æ§ã®éæã«è²¢ç®ããŸãã
ã·ããªãªäŸïŒããŒããã©ãªãªã«ãŒãã®ã¢ãã¡ãŒã·ã§ã³
äžè¬çãªWebãã¶ã€ã³ãã¿ãŒã³ã§èª¬æããŸãããïŒåã«ãŒãã埮åŠãªé å»¶ãšã¹ã±ãŒãªã³ã°å¹æã§è¡šç€ºãããããŒããã©ãªãªã°ãªããã§ãã
ç®æšïŒåã«ãŒãã0.9
ãã1
ã«ãã§ãŒãã€ã³ããã³ã¹ã±ãŒã«ã¢ããããã°ãªããã«è¡šç€ºãããåã«ãŒãã«ããããªé
å»¶ãé©çšããŸãã
HTML:
<div class="portfolio-grid">
<div class="portfolio-item">Card 1</div>
<div class="portfolio-item">Card 2</div>
<div class="portfolio-item">Card 3</div>
<div class="portfolio-item">Card 4</div>
</div>
CSS:
.portfolio-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px;
padding: 20px;
}
.portfolio-item {
background-color: #f0f0f0;
padding: 30px;
border-radius: 8px;
text-align: center;
font-size: 1.2em;
color: #333;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
/* Default initial state */
opacity: 0;
transform: scale(0.9);
/* Animation properties */
animation: fadeInUpScale 0.6s ease-out forwards;
}
/* @keyframes for the animation */
@keyframes fadeInUpScale {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 1;
transform: scale(1);
}
}
/* @starting-style to define the initial state for the animation */
@starting-style {
opacity: 0;
transform: scale(0.9);
}
/* Applying delays to each item using :nth-child */
.portfolio-item:nth-child(1) {
animation-delay: 0.1s;
}
.portfolio-item:nth-child(2) {
animation-delay: 0.2s;
}
.portfolio-item:nth-child(3) {
animation-delay: 0.3s;
}
.portfolio-item:nth-child(4) {
animation-delay: 0.4s;
}
/* Adjusting keyframes to show the effect */
@keyframes fadeInUpScale {
0% {
opacity: 0;
transform: scale(0.9);
}
100% {
opacity: 1;
transform: scale(1);
}
}
解説ïŒ
.portfolio-item
èŠçŽ ã¯ãæåã«opacity: 0
ãštransform: scale(0.9)
ã«èšå®ãããŸãããããã¢ãã¡ãŒã·ã§ã³ãé©çšãããåã®ç¶æ ã§ãã@keyframes fadeInUpScale
ã¯ã0%
ïŒäºå®äžã¢ãã¡ãŒã·ã§ã³ã®é²è¡ã®éå§ç¶æ ïŒãã100%
ãŸã§ã®ã¢ãã¡ãŒã·ã§ã³ãå®çŸ©ããŸãã@starting-style
ã«ãŒã«ã¯ãfadeInUpScale
ã¢ãã¡ãŒã·ã§ã³ãé©çšãããéã«ãopacity: 0
ãštransform: scale(0.9)
ã§éå§ãããã¹ãããšãæç€ºçã«å®£èšããŸããããã«ãããããã©ã«ãã®ã¹ã¿ã€ã«ãäœããã®çç±ã§å€æŽããããšããŠããã¢ãã¡ãŒã·ã§ã³ã¯ãã®å®çŸ©ããããã€ã³ãããéå§ãããããšãä¿èšŒãããŸããanimation-delay
ããããã£ã:nth-child
ã»ã¬ã¯ã¿ã䜿çšããŠååã«é©çšãããã«ãŒãã®è¡šç€ºããããããšã§ãããèŠèŠçã«é åçãªã·ãŒã±ã³ã¹ãäœæããŸããforwards
ããŒã¯ãŒãã¯ãã¢ãã¡ãŒã·ã§ã³ãçµäºããåŸãèŠçŽ ãæåŸã®ããŒãã¬ãŒã ã®ã¹ã¿ã€ã«ãä¿æããããšãä¿èšŒããŸãã
@starting-style
ããªããã°ããã©ãŠã¶ã.portfolio-item
ã®åæã®èšç®æžã¿ã¹ã¿ã€ã«ãã¢ãã¡ãŒã·ã§ã³ã®éå§ç¹ãšããŠæ£ããè§£éããªãã£ãå Žåãã¢ãã¡ãŒã·ã§ã³ã¯æå³ããªãå¥ã®ç¶æ
ããéå§ãããå¯èœæ§ããããŸãã@starting-style
ã¯ãã¢ãã¡ãŒã·ã§ã³ãæå³ããå€ããæ£ããã·ãŒã±ã³ã¹ãéå§ããããšãä¿èšŒããŸãã
çµè«
@starting-style
ã¢ããã«ãŒã«ã¯ãCSSã®ã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ã«ãããéèŠãªé²æ©ã§ããããã«ãããéçºè
ã¯ã¢ãã¡ãŒã·ã§ã³èŠçŽ ã®åæç¶æ
ãããæ£ç¢ºã«å¶åŸ¡ã§ããããã«ãªããããã¹ã ãŒãºã§äºæž¬å¯èœããããŠãããã§ãã·ã§ãã«ã«æŽç·ŽããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸã§ããŸãã@starting-style
ãçè§£ãå®è£
ããããšã§ãWebã¢ãã¡ãŒã·ã§ã³ãè¯ããã®ããåè¶ãããã®ãžãšæè¯ãããå¹
åºãããã€ã¹ããã©ãŠã¶ã§ã°ããŒãã«ãªèŠèŽè
ã«äžè²«ããé
åçãªäœéšãä¿èšŒããããšãã§ããŸãããã®åŒ·åãªããŒã«ã掻çšããŠããŠãŒã¶ãŒãçã«é
äºããèŠäºãªã¢ãã¡ãŒã·ã§ã³ã®WebäœéšãäœãäžããŸãããã