IntersectionObserver
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2019ë 3ì.
* Some parts of this feature may have varying levels of support.
Intersection Observer APIì IntersectionObserver ì¸í°íì´ì¤ë ëì ììì ìì ìì, ëë ëì ììì ìµìì 문ìì ë·°í¬í¸ê° ìë¡ êµì°¨íë ììì´ ë¬ë¼ì§ë ê²½ì° ì´ë¥¼ ë¹ë기ì ì¼ë¡ ê°ì§í ì ìë ìë¨ì ì ê³µí©ëë¤.
IntersectionObserverê° ìì±ëë©´ ë£¨í¸ ë´ìì ì¤ì ë ê°ìì± ë¹ì¨ì´ ìì ì 주ì ëì ì¤ìì ëíëëì§ ê°ì§í기 ììí©ëë¤. í ë² ìì±í ì´íìë ì¤ì ì ë³ê²½í ì ìì¼ë¯ë¡, ì´ë¯¸ ìì±ë ê°ì§ê¸° ê°ì²´ë ì§ì íë ê°ìì± ë¹ì¨ì ê°ì§ìë§ ì¬ì©í ì ììµëë¤. ê·¸ëë íëì ê°ì§ê¸°ê° ë¤ìì ëìì í꺼ë²ì 주ìí ì ììµëë¤.
ìì±ì
IntersectionObserver.IntersectionObserver()-
IntersectionObserverê°ì²´ë¥¼ ìì±í©ëë¤.IntersectionObserverê°ì²´ë ëì ììì ê°ìì± ë¹ì¨ì´ ì¤ì í ìì¹ ê°ì ëì´ê°ë ê²ì ê°ì§íë©´ ì§ì í ì½ë°±ì í¸ì¶í©ëë¤.
ìì±
IntersectionObserver.rootì½ê¸° ì ì©-
êµì°¨ ìì ê³ì°ì ì¬ì©íë ë°ì´ë© ë°ì¤ì 기ì¤ì´ ëë
ElementëëDocumentì ëë¤.rootì¤ì ì ìì±ìì ì ê³µíì§ ììê±°ë,rootì ê°ì´nullì¸ ê²½ì° ìµìì 문ìì ë·°í¬í¸ë¥¼ ì¬ì©í©ëë¤. IntersectionObserver.rootMarginì½ê¸° ì ì©-
êµì°¨ ììì ê³ì°í ë 루í¸ì ë°ì´ë© ë°ì¤ì ì ì©í ì¤íì ì ëë¤. ì¦, íìì ë°ë¼ ê³ì° ì©ëë¡ ë£¨í¸ ììì ë리거ë ì¤ì¼ ì ììµëë¤. ìì±ì ì¤ì ì ì§ì í ê°ì ìì±ì ë´ìì ë´ë¶ ì¡°ê±´ì ë§ëë¡ ì¡°ì ê³¼ì ì ê±°ì¹ë¯ë¡, ì´ ìì±ì ë°í ê°ì´ ì¤ì ê°ê³¼ ë¤ë¥¼ ìë ììµëë¤. ê°ê°ì ì¤íì ìë í½ì (
px)ê³¼ í¼ì¼í¸(%)를 ì¬ì©í ì ìì¼ë©°, 기본 ê°ì0px 0px 0px 0pxì ëë¤. IntersectionObserver.thresholdsì½ê¸° ì ì©-
ì¤ë¦ì°¨ìì¼ë¡ ì ë ¬ë ìì¹ ë¦¬ì¤í¸ì ëë¤. ê°ê°ì ìì¹ë ëìì ë°ì´ë© ë°ì¤ ììê³¼ êµì°¨ ìì ì¬ì´ì ë¹ì¨ì ëí ìì¹ì ëë¤. ëìì ëí êµì°¨ ì림(ì½ë°± í¸ì¶)ì ì´ ìì¹ ê° ì¤ íëë¼ë ëì´ê° ë ë°ìí©ëë¤. ì무 ê°ë ìì±ìì ì§ì íì§ ìì ê²½ì°ì 기본 ê°ì 0ì ëë¤.
ë©ìë
IntersectionObserver.disconnect()-
모ë ëìì 주ì를 í´ì í©ëë¤.
IntersectionObserver.observe()-
주ì´ì§ ëì ìì를 주ìí©ëë¤.
IntersectionObserver.takeRecords()-
모ë 주ì ëìì ëí
IntersectionObserverEntryë°°ì´ì ë°íí©ëë¤. IntersectionObserver.unobserve()-
í¹ì ëì ììì ëí 주ì를 í´ì í©ëë¤.
ìì
var intersectionObserver = new IntersectionObserver(function (entries) {
// intersectionRatioê° 0ì´ë¼ë ê²ì ëìì ë³¼ ì ìë¤ë ê²ì´ë¯ë¡
// ì무ê²ë íì§ ìì
if (entries[0].intersectionRatio <= 0) return;
loadItems(10);
console.log("ì í목 ë¶ë¬ì´");
});
// 주ì ìì
intersectionObserver.observe(document.querySelector(".scrollerFooter"));
ëª ì¸
| Specification |
|---|
| Intersection Observer > # intersection-observer-interface > |