scroll-timeline
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
scroll-timeline 㯠CSS ã®ä¸æ¬æå®ããããã£ã§ãååä»ãã¹ã¯ãã¼ã«é²è¡ã¿ã¤ã ã©ã¤ã³ ãå®ç¾©ãã¾ããããã¯ãã¹ã¯ãã¼ã«å¯è½ãªè¦ç´ ï¼ã¹ã¯ãã¼ã©ã¼ï¼ãä¸ä¸ï¼ã¾ãã¯å·¦å³ï¼ã«ã¹ã¯ãã¼ã«ãããã¨ã§é²è¡ãã¾ãã
æ§æè¦ç´ ã®ããããã£
ãã®ããããã£ã¯ä»¥ä¸ã® CSS ããããã£ã®ä¸æ¬æå®ã§ãã
æ§æ
/* å¤ 1 㤠*/
scroll-timeline: none;
scroll-timeline: --custom_name_for_timeline;
/* å¤ 2 㤠*/
scroll-timeline: --custom_name_for_timeline block;
scroll-timeline: --custom_name_for_timeline x;
scroll-timeline: none inline;
scroll-timeline: none y;
/* ã°ãã¼ãã«å¤ */
scroll-timeline: inherit;
scroll-timeline: initial;
scroll-timeline: revert;
scroll-timeline: revert-layer;
scroll-timeline: unset;
å¤
<scroll-timeline-name>-
<dashed-ident>ã¾ãã¯ãã¼ã¯ã¼ãnoneã§ãã <scroll-timeline-axis>-
<axis>ãã¼ã¯ã¼ãã§ããããã©ã«ãå¤ã¯blockã§ãã
解説
scroll-timeline 䏿¬æå®ããããã£ã¯ãscroll-timeline-name 㨠scroll-timeline-axis ã®ããããã£ã®å¤ã®çµã¿åããã¨ãã¦ãã³ã³ããã¼è¦ç´ ã«é©ç¨ãããã¨ãã§ãã¾ããããã¯ãã¿ã¤ã ã©ã¤ã³ãæä¾ããã¹ã¯ãã¼ã©ã¼ã«è¨å®ãã¾ããã³ã³ããã¼ã«ã¹ã¯ãã¼ã«ããããã®ãªã¼ãã¼ããã¼ããªãå ´åãã¾ãã¯ãªã¼ãã¼ããã¼ãé表示ã¾ãã¯ã¯ãªããããã¦ããå ´åãã¿ã¤ã ã©ã¤ã³ã¯ä½æããã¾ããã
scroll-timeline-name ã®å¤ã¯ãnone ã«è¨å®ããã¦ããªãå ´åã<dashed-ident> ã§ãªããã°ãªãããããªãã¡ -- ã§å§ã¾ãå¿
è¦ãããã¾ãããã®ãã¨ã¯ãååãæ¨æºã® CSS ãã¼ã¯ã¼ãã¨è¡çªããã®ãé¿ããããã«ãå½¹ç«ã¡ã¾ãããã®ååã¯ãè¦ç´ ã® animation-timeline ããããã£ã®å¤ã¨ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ããããã«ããããã®ã¢ãã¡ã¼ã·ã§ã³ã¿ã¤ã ã©ã¤ã³ãå®ç¾©ããã¹ã¯ãã¼ã«ã³ã³ããã¼è¦ç´ ãæå®ããã¹ã¯ãã¼ã«ã«å¿ãã¦ã¢ãã¡ã¼ã·ã§ã³ã®é²è¡ãé§åãã¾ãã
ãªãã·ã§ã³ã®ã¹ã¯ãã¼ã«è»¸ã®å¤ <axis> 㯠scroll-timeline-axis ãå®ç¾©ããçç¥ããå ´åã¯ããã©ã«ãã§ block ã¨ãªãã¾ããååã¨è»¸ã®ä¸¡æ¹ãæå®ãããå ´åãé åºã¯ <scroll-timeline-name> ã®å¤ã«ç¶ã㦠<axis> ã®å¤ã§ãªããã°ãªãã¾ããã<axis> ãæåã«è¨è¿°ããã¦ããå ´åã宣è¨ã¯ä¸æ£ãªç¶æ
ã¨ãªãç¡è¦ããã¾ãã
å ¬å¼å®ç¾©
| åæå¤ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
|---|---|
| é©ç¨å¯¾è±¡ | ã¹ã¯ãã¼ã«ã³ã³ããã¼ |
| ç¶æ¿ | ãªã |
| è¨ç®å¤ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
形弿æ³
scroll-timeline =
[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#
<scroll-timeline-name> =
[ none | <dashed-ident> ]#
<scroll-timeline-axis> =
[ block | inline | x | y ]#
ä¾
>ååä»ãã¹ã¯ãã¼ã«é²è¡ã¿ã¤ã ã©ã¤ã³ã®ã¢ãã¡ã¼ã·ã§ã³ã®ä½æ
ãã®ä¾ã§ã¯ã--square-timeline ã¨ããååã®ã¹ã¯ãã¼ã«ã¿ã¤ã ã©ã¤ã³ã #container ã®è¦ç´ ã« scroll-timeline-name ããããã£ã使ç¨ãã¦å®ç¾©ãã¦ãã¾ãã
ããã #square è¦ç´ ã®ã¢ãã¡ã¼ã·ã§ã³ã«é©ç¨ããã«ã¯ã animation-timeline: --square-timeline ã使ç¨ãã¾ãã
HTML
ã³ã³ããã¼å
ã« 2 ã¤ã®åè¦ç´ ã§ãã <div> è¦ç´ ãè¨ç½®ãã¦ãã¾ãã
<div id="container">
<div id="square"></div>
<div id="stretcher"></div>
</div>
CSS
ã³ã³ããã¼ã®é«ãã300pxã«è¨å®ããåç´æ¹åã«ã¹ã¯ãã¼ã«ã§ããããã«ãã¾ãã
scroll-timeline ããããã£ã使ç¨ãã¦ãã³ã³ããã¼ã --square-timeline ã¨ããååä»ãã®ã¹ã¯ãã¼ã«ã¿ã¤ã ã©ã¤ã³ã®ã½ã¼ã¹ã¨ãã¦å®ç¾©ããããã©ã«ãã®åç´ã¹ã¯ãã¼ã«ãã¼ãã¿ã¤ã ã©ã¤ã³ã³ã³ããã¼ã©ã¼ã¨ãã¦æç¤ºçã«è¨å®ãã¾ãã
#container {
height: 300px;
overflow-y: scroll;
scroll-timeline: --square-timeline y;
/* Firefox ã¯æ¨æºå¤ã® vertical/horizontal æ§æã«å¯¾å¿ */
scroll-timeline: --square-timeline vertical;
position: relative;
}
æ£æ¹å½¢ã®åºæ¬ã¹ã¿ã¤ã«ãæä¾ãã¾ããrotateAnimation ã« animation-name ããããã£ã使ç¨ãã¦é©ç¨ãã¾ãã ããã©ã«ãã§ã¯ãæéãã¼ã¹ã®ææ¸ã¿ã¤ã ã©ã¤ã³ã使ç¨ããã¾ããanimation-timeline ããããã£ã以ä¸ã§ååä»ããã --square-timeline ã¿ã¤ã ã©ã¤ã³ã«è¨å®ãããã¨ã§ãã³ã³ããã¼ã®ã¹ã¯ãã¼ã«ã«å¿ãã¦é²è¡ããã¹ã¯ãã¼ã«ãã¼ã¹ã®ã¿ã¤ã ã©ã¤ã³ã«å¾ã£ã¦æ£æ¹å½¢ãå転ããããã«è¨å®ãã¾ãã
#square {
background-color: deeppink;
width: 100px;
height: 100px;
position: absolute;
bottom: 0;
animation: rotateAnimation 1ms linear;
animation-timeline: --square-timeline;
}
親è¦ç´ ãããå¹ ã®åºãã¹ãã¬ããã£ã¼ãå®ç¾©ãããã¨ã§ãã³ã³ããã¼ã確å®ã«ãªã¼ãã¼ããã¼ããããã«ãã¾ãã ã³ã³ããã¼ãããªã¼ãã¼ããã¼ããã³ã³ãã³ãããªããã°ãã¹ã¯ãã¼ã«ãã¼ã¯çæãããããããã£ã¦ã¹ã¯ãã¼ã«ã¿ã¤ã ã©ã¤ã³ãã§ãã¾ãããåæã«ãé©ç¨ãããè¦ç´ ã 1 å転ããã CSS ãã¼ãã¬ã¼ã ã¢ãã¡ã¼ã·ã§ã³ãå®ç¾©ãã¾ãã
#stretcher {
height: 600px;
background: #dedede;
}
@keyframes rotateAnimation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
çµæ
åç´ãã¼ãã¹ã¯ãã¼ã«ããã¨ãæ£æ¹å½¢ãã¢ãã¡ã¼ã·ã§ã³ãã¾ãã
ã¹ã¯ãã¼ã«ããã¨æ£æ¹å½¢ãã¢ãã¡ã¼ã·ã§ã³ãã¾ããscroll-timeline ã使ç¨ããå ´åãã¢ãã¡ã¼ã·ã§ã³ã®åçæé㯠animation-duration ããããã£ã®å¤ã§ã¯ãªããã¹ã¯ãã¼ã«é度ã«ãã£ã¦æ±ºã¾ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| Scroll-driven Animations > # scroll-timeline-shorthand > |