原生js判断某个区域的滚动条滚动到了底部
原生js判断某个区域的滚动条滚动到了底部###
讲解==》
关系公式:element.scrollHeight - element.scrollTop === element.clientHeight
解释:此公式可以用于判断是否滚动到底
你必须知道这个方法 可以判断滚动条滚动到了底部哈!
element.scrollHeight 是获取这个元素区域的实际高度(包含被隐藏起来的高度)
element.scrollTop是获取滚动条距离顶部的实际距离(包含被隐藏起来的高度)
element.clientHeight: 就是元素内部(可见高度) + 自身padding
在生命周期函数中 给滚动区域的元素注册滚动事件
element.addEventListener('scroll', this.doSomething);
<div id="app">
<div class="box" id="box">
<div class="demo" v-for="(item,index) in condata" :key="index">{{item}}</div>
</div>
</div>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/element-ui@2.4.11/lib/index.js"></script>
<script>
new Vue({
el: '#app',
data() {
return {
condata:["121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","最后一条数据了",
],
boxScrollpositionHeight:0,
boxElement:"",
boxscrollPosition:0,//滚动条所在的高度()
}
},
mounted () {
this.boxElement=document.getElementById("box");
this.boxElement.addEventListener('scroll', this.doSomething);
// 获取滚动条滚动区域盒子的高度
this.boxScrollpositionHeight=this.boxElement.offsetHeight;
console.log("div内容区域的实际高度",this.boxElement.scrollHeight)
},
methods: {
doSomething(){
//此时滚动条所在的高度
let scrollcurHeight=this.boxElement.scrollTop;
console.log("滚动条距离顶部的实际高度",this.boxElement.scrollTop)
console.log("hah",this.boxElement.clientHeight)
// 关系公式:element.scrollHeight - element.scrollTop === element.clientHeight
// 解释:此公式可以用于判断是否滚动到底
if(this.boxElement.scrollHeight-this.boxElement.scrollTop===this.boxElement.clientHeight){
console.log("滚动到底部了",)
}
}
},
beforeDestroy() {
let boxscrollPosition=document.getElementById("box");
boxscrollPosition.removeEventListener('scroll', this.doSomething);
},
})
</script>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
body,html,#app{
height: 100%;
}
.box{
width: 300px;
height: calc(100% - 279px);
background: #0366D6;
overflow: hidden;
overflow-y: auto;
}
.demo{
height: 30px;
line-height: 30px;
border-top:1px solid #ccc;
}
</style>
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

支付宝

微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY