博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用getBoundClientRect检测浏览器滚动到底部事件
阅读量:5864 次
发布时间:2019-06-19

本文共 849 字,大约阅读时间需要 2 分钟。

很多时候比如下拉加载更多这种组件都需要检测滚动到底部事件。一般我们的做法是这个样子,先获取视窗高度window.innerHeight,然后获取整个html文档高度document.body.scrollHeight,再获取滚动条卷上去的距离,document.body.scrollTop,如果滚动卷上去的距离大于等于整个文档高度-视窗高度就说明滚动条到了底部。一图胜千言!

图片描述

就类似于我们通过一个窗户观察一幅画一样,窗户就是浏览器视窗,那幅画就是html文档。很明显就可以得出滚动到底部的判断

//判断是否滚动到底部if(document.body.scrollTop>=document.body.scrollHeight - window.innerHeight){//todosomething}

上面这个方法比较麻烦还要处理浏览器兼容性。笔者无意中看到了一个getBoundClientRect(),这个方法比较新颖。下面和大家分享下:

用getBoundClientRect()判断是否滚动到底部

getBoundClientRect()说明

这个方法由一个dom元素调用返回一个Object ClientRect对象,

该对象有六个属性
left,top,bottom,right,height,width.
left dom左边界距离视窗左边距离,
top dom上边界距离视窗上部距离,
right dom右边界距离视窗左边距离,
bottom dom下边界距离视窗上部的距离,
height dom的高度,
width dom的宽度

实现检测滚动到底部

对于html文档中最底部的dom元素,假设变量名称是dom

if(document.body.scrollTop>=dom.getBoundClientRect().top+dom.getBoundClientRect().height){//doSomething}

这样就可以实现滚动到底部的检测,比上一种办法简洁多了。

转载地址:http://ehynx.baihongyu.com/

你可能感兴趣的文章
使用RecyclerView的两个非传统型崩溃
查看>>
Java 多线程设计模式之基础概念
查看>>
springboot(六):如何优雅的使用mybatis
查看>>
漫画:程序员的“情人”节应该这样度过
查看>>
并发容器之BlockingQueue
查看>>
聊一聊rank-1和rank-5准确度
查看>>
这是一份收藏量超过2万6的计算机科学学习笔记
查看>>
Spring SpringMVC Mybatis整合
查看>>
1116 - 时不时跳出来思考
查看>>
聊聊 React Router v4 的设计思想
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>
漫画:程序员,你能“管理”好你的产品经理吗?
查看>>
为Spring Cloud Config插上管理的翅膀
查看>>
Android TV Overscan
查看>>
JavaScript 运行机制--Event Loop详解
查看>>
SegWit2x客户端安装教程
查看>>
乱炖“简书交友”数据之代码(2):关键词抽取、Word2Vec词向量
查看>>
MVP那些事儿(5) 中介者与MVP
查看>>
OAuth2.0协议入门(二):OAuth2.0授权服务端从设计到实现
查看>>
用机器学习识别随机生成的C&C域名
查看>>