vue3中监听滚动条事件
import { onMounted, onUnmounted, reactive } from 'vue' const data=reactive({ oldScrollTop:0, }); const scrolling=()=>{ // 滚动条距文档顶部的距离 let scrollTop =window.pageYOffset ||document.documentElement.scrollTop ||document.body.scrollTop; // 滚动条滚动的距离 let scrollStep = scrollTop - data.oldScrollTop; console.log("header 滚动距离 ", scrollTop); // 更新——滚动前,滚动条距文档顶部的距离 data.oldScrollTop = scrollTop; //变量windowHeight是可视区的高度 let windowHeight = document.documentElement.clientHeight || document.body.clientHeight; //变量scrollHeight是滚动条的总高度 let scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight; //滚动条到底部的条件 if (scrollTop + windowHeight == scrollHeight) { //你想做的事情 console.log("header 你已经到底部了"); } if (scrollStep < 0) { console.log("header 滚动条向上滚动了!"); } else { console.log("header 滚动条向下滚动了!"); } // 判断是否到了最顶部 if (scrollTop <= 0) { console.log("header 到了最顶部") }; }; onMounted(()=>{ window.addEventListener("scroll", scrolling); }) onUnmounted(()=>{ window.removeEventListener("scroll", scrolling); })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通