Element: scrollsnapchange ã¤ãã³ã
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
scrollsnapchange 㯠Element ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¤ãã³ãã§ãã¹ã¯ãã¼ã«æä½ã®çµããã«ãæ°ããã¹ã¯ãã¼ã«ã¹ãããã¿ã¼ã²ããã鏿ãããã¨ãã«ã対å¿ãã scrollend ã¤ãã³ããçºçããç´åã«ãã¹ã¯ãã¼ã«ã³ã³ããã¼å
ã§çºè¡ããã¾ãã
ã¹ã¯ãã¼ã«æä½ã¯ãã¦ã¼ã¶ã¼ãã¹ã¯ãã¼ã«ã³ã³ããã¼å ã§ã¹ã¯ãã¼ã«ãå®äºããæç¹ã§çµããã¾ããä¾ãã°ãã¿ããã¸ã§ã¹ãã£ã¼ã使ç¨ããããã¹ã¯ãã¼ã«ãã¼ä¸ã§ãã¦ã¹ãã¤ã³ã¿ã¼ããã©ãã°ããããã¦ããã®ã¸ã§ã¹ãã£ã¼ãè§£é¤ãããããã¨ãã§ãã
æ§æ
ãã®ã¤ãã³ãåã addEventListener() ãªã©ã®ã¡ã½ããã§ä½¿ç¨ããããã¤ãã³ããã³ãã©ã¼ããããã£ãè¨å®ããããã¦ãã ããã
addEventListener("scrollsnapchange", (event) => { })
onscrollsnapchange = (event) => { }
ã¤ãã³ãå
SnapEvent ã§ããä¸è¬ç㪠Event åãç¶æ¿ãã¦ãã¾ãã
ä¾
>åºæ¬çãªä½¿ç¨
ä¾ãã°ãã¹ã¯ãã¼ã«ãçºçãããããªéè¦ãªã³ã³ãã³ããå«ã <main> è¦ç´ ããã£ãã¨ãã¾ãã
<main>
<!-- éè¦ãªã³ã³ãã³ã -->
</main>
CSS ã® scroll-snap-type ããããã£ã¨ä»ã®ããããã£ãçµã¿åããã¦ä½¿ç¨ãããã¨ã§ã <main> è¦ç´ ã®ã¹ã¯ãã¼ã«æã«åè¦ç´ ã«ã¹ãããããã¹ã¯ãã¼ã«ã³ã³ããã¼ã«ãããã¨ãã§ãã¾ããä¾ã示ãã¾ãã
main {
width: 250px;
height: 450px;
overflow: scroll;
scroll-snap-type: block mandatory;
}
次ã®çã JavaScript ã®ã³ã¼ãã¹ããããã¯ããã®åè¦ç´ ã® 1 ã¤ãæ°ãã«é¸æãããã¹ãããã¿ã¼ã²ããã«ãªã£ãã¨ãã«ã <main> è¦ç´ ã§ scrollsnapchange ãçºçããããã«ãã¾ãããã³ãã©ã¼é¢æ°ã§ã¯ã SnapEvent.snapTargetBlock ããããã£ã§åç
§ãããåè¦ç´ ã« selected ã¯ã©ã¹ãè¨å®ãã¾ããããã¯ãã¤ãã³ããçºçããã¨ãã«ã鏿ãããããã«è¦ããããã«ã¹ã¿ã¤ã«ãè¨å®ããããã«ä½¿ç¨ãããã¨ãã§ãã¾ãï¼ä¾ãã°ãã¢ãã¡ã¼ã·ã§ã³ã使ç¨ãã¦ï¼ã
const scrollingElem = document.querySelector("main");
scrollingElem.addEventListener("scrollsnapchange", (event) => {
event.snapTargetBlock.classList.add("selected");
});
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Scroll Snap Module Level 2 > # scrollsnapchange > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
scrollsnapchangingã¤ãã³ãscrollendã¤ãã³ãSnapEvent- CSS ã®
scroll-snap-typeãããã㣠- CSS ã¹ã¯ãã¼ã«ã¹ãããã¢ã¸ã¥ã¼ã«
- ã¹ã¯ãã¼ã«ã¹ãããã¤ãã³ãã®ä½¿ç¨
- Scroll Snap Events on developer.chrome.com (2024)