Javascript 用intersectionObserver API检测动态第n个div
我有一个带有Javascript 用intersectionObserver API检测动态第n个div,javascript,reactjs,intersection-observer,Javascript,Reactjs,Intersection Observer,我有一个带有React.js 它实际上是无限的,所以我无法测量它有多少 <div className="InfiniteScroll"> <div ref={observer} className="item">item</div> <div ref={observer2} className="item">item</div> {/* Actually I am
React.js
它实际上是无限的,所以我无法测量它有多少
<div className="InfiniteScroll">
<div ref={observer} className="item">item</div>
<div ref={observer2} className="item">item</div>
{/* Actually I am using map() */}
{...}
</div>
当我想知道当前可见的div时,我怎么能用这个来知道呢
在每个div
上添加IntersectionObserver
看起来不合理
如果我想用1000次div或随机div调用某个函数,我该如何实现它?您可以用代码设置任何div
new IntersectionObserver(function(div) {
div.isIntersecting && do_something();
}).observe(div);
您可以使用代码设置任何div
new IntersectionObserver(function(div) {
div.isIntersecting && do_something();
}).observe(div);
我建议您在最后一个div上附加一个ref。因此,当最后一个div相交时,您可以在那里调用您的函数 将ref附加到最后一个div
{list.map((item, index) => {
if (item.length === index + 1) {
return <div ref={lastItemElementRef} key={item}>{item}</div>
} else {
return <div key={item}>{item}</div>
}
})}
我建议您在最后一个div上附加一个ref。因此,当最后一个div相交时,您可以在那里调用您的函数 将ref附加到最后一个div
{list.map((item, index) => {
if (item.length === index + 1) {
return <div ref={lastItemElementRef} key={item}>{item}</div>
} else {
return <div key={item}>{item}</div>
}
})}
您是否使用映射来显示数据?@RamyRagab是的,我正在使用
map()
来显示数组。您正在使用映射来显示数据吗?@RamyRagab是的,我正在使用map()
来显示数组。如何访问1001st div?ReactDOM.render(元素,容器[,回调]);能否在回调中设置IntersectionObserver?如何访问1001st div?ReactDOM.render(元素,容器[,回调]);你能在回调中设置IntersectionObserver吗?我已经在IntersectionObserver
中使用了第一个div和最后一个div。但是我正在努力处理nth
div。当我检测到412th
div时,我想调用一些函数。这个数字可能是动态的。我已经将第一个div和最后一个div用于IntersectionObserver
。但是我正在努力处理nth
div。当我检测到412th
div时,我想调用一些函数。这个数字可能是动态的。