Documentï¼scroll äºä»¶
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
å½ææ¡£è§å¾æ»å¨åï¼scroll äºä»¶å°±ä¼è§¦åãè¦æ£æµæ»å¨ä½æ¶ç»æï¼è¯·åé
Documentï¼scrollend äºä»¶ãå
³äºå
ç´ æ»å¨ï¼è¯·åè§ Elementï¼scroll äºä»¶ã
è¯æ³
å¨ç±»ä¼¼äº addEventListener() è¿æ ·çæ¹æ³ä¸ä½¿ç¨äºä»¶åç§°ï¼æè®¾ç½®äºä»¶å¤çå¨å±æ§ã
addEventListener("scroll", (event) => {});
onscroll = (event) => {};
äºä»¶ç±»å
éç¨ç Eventã
示ä¾
>Scroll äºä»¶éæµ
ç±äº scroll äºä»¶å¯è¢«é«é¢è§¦åï¼äºä»¶å¤çå¨ä¸åºè¯¥æ§è¡é«æ§è½æ¶èçæä½ï¼å¦ DOM æä½ãèæ´æ¨èçåæ³æ¯ä½¿ç¨ requestAnimationFrame()ãsetTimeout() æ CustomEvent ç»äºä»¶éæµï¼å¦ä¸æè¿°ã
ç¶èéè¦æ³¨æçæ¯ï¼è¾å
¥äºä»¶åå¨ç»å¸§ç触åé度大è´ç¸åï¼å æ¤é常ä¸éè¦ä¸è¿°ä¼åãæ¤ç¤ºä¾ä½¿ç¨ requestAnimationFrame ä¼å scroll äºä»¶ã
let lastKnownScrollPosition = 0;
let ticking = false;
function doSomething(scrollPos) {
// å©ç¨æ»å¨ä½ç½®å®æä¸äºäºæ
}
document.addEventListener("scroll", (event) => {
lastKnownScrollPosition = window.scrollY;
if (!ticking) {
window.requestAnimationFrame(() => {
doSomething(lastKnownScrollPosition);
ticking = false;
});
ticking = true;
}
});
è§è
| è§è |
|---|
| CSSOM View Module > # eventdef-document-scroll > |
| HTML > # handler-onscroll > |