解决问题思路

滚动条距离上面的滚动高度(scrollTop) + 滚动条本身高度 = 整个页面的高度(pageHeight)

关键点:滚动条本身高度是多少

事实上,这里就有一个思想误区,人会想直接获取滚动条高度(但找不到这个API,同时滚动条表现出来的高度,也会虽内容变长变短)。

其实你只要考虑一下,为什么会出现滚动条。出现滚动条代表超出可视窗口,它的滚动距离就是超出部分,而可视窗口高度就是滚动条对应的真实高度。

 //滚动条距离顶部高度
function getScrollTop() {
var scrollTop=0;
if(document.documentElement&&document.documentElement.scrollTop) {
scrollTop=document.documentElement.scrollTop;
}
else if(document.body) {
scrollTop= document.body.scrollTop;
}
return Math.ceil(scrollTop);
} //滚动条本身高度:就是可视窗口高度
function getScrollBarHeight(){
let scrollBarHeight = document.documentElement.clientHeight;
return Math.ceil(scrollBarHeight);
} //整个页面高度
function getPageHeight() {
return Math.ceil(Math.max(document.body.clientHeight,document.documentElement.scrollHeight));
} window.onscroll = function () {
let top = getScrollTop();
let ch = getScrollBarHeight();
let sh = getPageHeight();
if (top + ch >= sh) {
console.log("到达底部");
}else{
console.log("没有到达底部");
}
}

最新文章

  1. 《javascript权威指南》读书笔记——第一篇
  2. WinForm------BarManager中各种属性设置
  3. JMX超详细解读
  4. AI编辑SVG格式的相关问题
  5. java基础练习 9
  6. JavaScript 中的 this 问题总结 !
  7. Nodejs MSSQL详细解读
  8. (工具类)double类型数据运算
  9. Oracle中用序列和触发器实现ID自增
  10. 洛谷 P1439 【模板】最长公共子序列
  11. python 的回调函数
  12. linux下面重启nfs报错:nfs-server.service:main process exited
  13. 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式
  14. c# 线程锁 ,
  15. Django基础自测
  16. C++ Addon Async 异步机制
  17. PHP 生成验证码(+图片没有显示的解决办法)
  18. [转]VS2012正则查找
  19. Javascript Ajax异步读取RSS文档
  20. php根据路径获取文件名

热门文章

  1. Windows性能监控工具Perfmon的使用、性能指标分析
  2. drf-序列化字段及参数、序列化和反序列化高级用法、ModelSerializer使用
  3. mysql19-锁
  4. 简要介绍WASAPI播放音频的方法
  5. Excel文件 利用MySQL/Python 实现自动处理数据的功能
  6. 题解 P1627 [CQOI2009] 中位数
  7. Android:Banner 和 Glide 在 Fragment 中实现轮播图
  8. Angular UI库
  9. 【3】java之string类
  10. MyBatisPlus(springBoot版)-尚硅谷