检测用户是否在react js和javascript中滚动div的底部

检测用户是否在react js和javascript中滚动div的底部,javascript,jquery,css,reactjs,Javascript,Jquery,Css,Reactjs,我想在表中实现无限滚动,所以我用一种可能的方法计算div高度,如下所示 let fixedCh = e.target.clientHeight; let calCh = e.target.scrollHeight - e.target.scrollTop; if (fixedCh === calCh) { alert('load more'); } 在这种方法中,calCh因分辨率不同而不同。有没有其他方法可以做到这一点,以便它可以通过各种浏览器和屏幕分辨率工作您的方

我想在表中实现无限滚动,所以我用一种可能的方法计算div高度,如下所示

 let fixedCh = e.target.clientHeight;
 let calCh = e.target.scrollHeight - e.target.scrollTop;
 if (fixedCh === calCh) {
      alert('load more');
    }

在这种方法中,calCh因分辨率不同而不同。有没有其他方法可以做到这一点,以便它可以通过各种浏览器和屏幕分辨率工作

您的方法很好;当用户加载页面时,首先需要调用函数来检查用户的屏幕分辨率是否已达到滚动的末尾,请调用“alert(‘load more’)”

问题是,对于某些用户,基于他们的屏幕,滚动条在滚动时不可见,因此滚动的
事件不会检查元素。要解决这个问题,正如我上面所说的,首先需要在“Dom就绪”时加载屏幕检查函数

以下是基本实现:

function loadMore (e) {
  let fixedCh = e.clientHeight;
  let calCh = e.scrollHeight - e.scrollTop;
  if (fixedCh === calCh) {
    alert('load more');
  }
}

// listen on scroll and check target element fixedCh === calCh
function listenOnScroll() {
  document.getElementById('app').addEventListener('scroll', (e) => {
    loadMore(e.target)
  })
},


window.onload = (event) => {
  loadMore(document.getElementById('app').target)
};
dom准备就绪或已加载时,我将调用函数“loadMore”,并传递目标dom元素


稍后,我将调用“listenOnScroll”函数来监听目标元素滚动,然后从中调用“loadMore”函数。

分辨率如何?它不是在我朋友的笔记本电脑上工作,而是在为我工作。在你的例子中,上面的代码只关心目标元素的高度。如果您朋友的笔记本电脑中的屏幕分辨率不同,那是因为您的目标元素的滚动高度和clientHeight小于他/她的屏幕分辨率。@SupriyaKumari我更新了答案,希望这对您有所帮助。这有帮助吗?