vue 监听元素滚动

17 阅读1分钟

vue3

//滚动监听
function handleScroll(e) {
  let dom = document.querySelector('.notice-list');
  //console.log("滚动");
  if (!dom) return;
  //文档内容实际高度(包括超出视窗的溢出部分)
  let scrollHeight = Math.max(dom.scrollHeight, dom.scrollHeight);
  //滚动条滚动距离
  let scrollTop = e.target.scrollTop;
  //窗口可视范围高度
  let clientHeight = dom.innerHeight || Math.min(dom.clientHeight, dom.clientHeight);
  //console.log(clientHeight + scrollTop , scrollHeight - 10);
  if (clientHeight + scrollTop <= scrollHeight - 10) {
  
  }
}
//throttle防止多次触发的vue原生方法
onMounted(async () => {
  // 监听滚动
  window.addEventListener('scroll', throttle(handleScroll,500), true);
});

onBeforeUnmount(() => {
  window.removeEventListener('scroll', throttle(handleScroll,500), true);
});