JavaScript | 如何判断页面是否滚动到底部?

在 JavaScript 中,我们可以通过一些技巧来判断页面是否滚动到底部。本文将介绍一些常用的方法,帮助你在项目中实现这一功能。

判定页面到达底部

JS:

javascript 复制代码
// HTML 文档返回对象为HTML元素
let docEl = document.documentElement;
// 浏览器可视部分的高度
let clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
window.addEventListener('scroll', function () {
  // 页面中内容的总高度
  let docELHeight = docEl.scrollHeight; 
  // 页面内已经滚动的距离
  let scrollTop = docEl.scrollTop; 
  // 页面上滚动到底部的条件
  if (scrollTop == docELHeight - clientHeight) {
    // 页面内已经滚动的距离 = 页面中内容的总高度 - 浏览器可视部分的高度
    console.log('到达底部了!');
  }
});

判定元素内滚动到达底部

CSS:

css 复制代码
div {
  overflow: auto;
  margin: 250px auto;
  width: 80px;
  height: 100px;
  background-color: rgb(204, 126, 255);
}

HTML:

html 复制代码
<div>
  保护大自然
  保护大自然
  保护大自然
  保护大自然
  保护大自然
  保护大自然
  保护大自然
</div>

JS:

javascript 复制代码
// 获取元素
let div = document.querySelector('div');
// div中内容的总高度
let scrollHeight = div.scrollHeight; 
// 给div添加滚动事件
div.addEventListener('scroll', function () {
  // div 内已滚动的距离
  let scrollTop = div.scrollTop; 
  // 元素内滚动条到底部的条件
  if (scrollTop == scrollHeight - div.clientHeight) {
    // div 内已滚动的距离 = div中内容的总高度 - div 元素的高度
    console.log('到达底部了!');
  }
});
相关推荐
程序员爱钓鱼10 分钟前
Go语言泛型-泛型约束与实践
前端·后端·go
前端小巷子11 分钟前
web从输入网址到页面加载完成
前端·面试·浏览器
江城开朗的豌豆12 分钟前
Vue路由动态生成秘籍:让你的链接'活'起来!
前端·javascript·vue.js
晓得迷路了12 分钟前
栗子前端技术周刊第 88 期 - Apache ECharts 6.0 beta、Deno 2.4、Astro 5.11...
前端·javascript·echarts
江城开朗的豌豆18 分钟前
在写vue公用组件的时候,怎么提高可配置性
前端·javascript·vue.js
江城开朗的豌豆18 分钟前
Vue路由跳转的N种姿势,总有一种适合你!
前端·javascript·vue.js
江城开朗的豌豆19 分钟前
Vue路由玩法大揭秘:三种路由模式你Pick谁?
前端·javascript·vue.js
江城开朗的豌豆20 分钟前
Vue路由守卫全攻略:给页面访问装上'安检门'
前端·javascript·vue.js
小磊哥er26 分钟前
【前端工程化】前端组件模版构建那些事
前端
前端 贾公子27 分钟前
monorepo + Turborepo --- 开发应用程序
java·前端·javascript