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('到达底部了!');
  }
});
相关推荐
郭尘帅6661 小时前
vue3基础学习(上) [简单标签] (vscode)
前端·vue.js·学习
njsgcs1 小时前
opencascade.js stp vite webpack 调试笔记
开发语言·前端·javascript
T0uken2 小时前
【前端】:单 HTML 去除 Word 批注
前端·html·word
st紫月2 小时前
用vue和go实现登录加密
前端·vue.js·golang
岁岁岁平安3 小时前
Vue3学习(组合式API——计算属性computed详解)
前端·javascript·vue.js·学习·computed·计算属性
HWL56793 小时前
Express项目解决跨域问题
前端·后端·中间件·node.js·express
刺客-Andy3 小时前
React 第三十九节 React Router 中的 unstable_usePrompt Hook的详细用法及案例
前端·javascript·react.js
Go_going_4 小时前
【js基础笔记] - 包含es6 类的使用
前端·javascript·笔记
浩~~4 小时前
HTML5 浮动(Float)详解
前端·html·html5
AI大模型顾潇5 小时前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j