監(jiān)聽該元素是否在可視窗口IntersectionObserver
IntersectionObserver接口 (從屬于Intersection Observer API) 提供了一種異步觀察目標元素與其祖先元素或頂級文檔視窗(viewport)交叉狀態(tài)的方法。祖先元素與視窗(viewport)被稱為根(root)。
當(dāng)一個IntersectionObserver對象被創(chuàng)建時,其被配置為監(jiān)聽根中一段給定比例的可見區(qū)域。一旦IntersectionObserver被創(chuàng)建,則無法更改其配置,所以一個給定的觀察者對象只能用來監(jiān)聽可見區(qū)域的特定變化值;然而,你可以在同一個觀察者對象中配置監(jiān)聽多個目標元素。
大概思路如下:
設(shè)置總數(shù)據(jù)源,頁面內(nèi)容數(shù)據(jù)存儲容器
制定頁面內(nèi)容數(shù)據(jù)存儲容器規(guī)則(假設(shè)存儲容器設(shè)置為200條,一屏最多展示20條。那么存儲容器能展示10屏幕的數(shù)據(jù)。
當(dāng)用戶滑到地6屏數(shù)據(jù)的時候,顯然前面5屏數(shù)據(jù)不在可視窗口,那你可以將存儲容器的前3屏數(shù)據(jù)刪除。同時,再從總數(shù)據(jù)源取第11屏到第13屏數(shù)據(jù)。