JS如何判断滚动条是否滚到底部

  • 背景
  • 解决方案(以纵向滚动条为例,横向滚动条方法类似)

背景

通常我们需要判断滚动条是否滚到底部,以实现相应的功能,如“加载更多”等。
那么如何通过js来判断滚动条是否滚到底部,请看以下方法

解决方案(以纵向滚动条为例,横向滚动条方法类似)

判断滚动条到底部,需要用到DOM的三个属性值,即clientHeight、scrollTop、scrollHeight。(横向滚动条则是clientWidth,scrollLeft,scrollWidth)

clientHeight为内容可视区域的高度。

scrollTop为滚动条在Y轴上的滚动距离。

scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。

从这个三个属性的介绍就可以看出来,滚动条到底部的条件即:
clientHeight + scrollTop === scrollHeight

const dom = document.getElementById('scrollElement');
dom.addEventListener('scroll', () => {const clientHeight = dom.clientHeight;const scrollTop = dom.scrollTop;const scrollHeight = dom.scrollHeight;if (clientHeight + scrollTop === scrollHeight) {console.log('竖向滚动条已经滚动到底部')}
})

JS如何判断滚动条是否滚到底部相关推荐

  1. js实现判断滚动条滚到页面底部并执行事件的方法

    这里我主要介绍JS实现判断滚动条滚到页面底部并执行事件的方法: 需要了解三个dom元素,分别是:clientHeight.offsetHeight.scrollTop. clientHeight:这个 ...

  2. JS小练习——判断滚动条是否到底部(onscroll事件)

    实现功能要求:当我们下拉这个滚动条时,判断它是否到达最底部,如果到达最底部,则两个表单项可以点击,如果没有到达,则不可以点击.并且要勾选第一个按钮之后,才可以提交. disabled 属性可设置或返回 ...

  3. JQuery 判断滚动条是否到底部

    1 BottomJumpPage: function () { 2 var scrollTop = $(this).scrollTop(); 3 var scrollHeight = $(docume ...

  4. JS判断滚动条到底部

    form:http://www.uphtm.com/js/269.html判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop.clientHeight.scrollHeight. sc ...

  5. java 滚动条的事件_[Java教程]jquery如何判断滚动条滚到页面底部并执行事件

    [Java教程]jquery如何判断滚动条滚到页面底部并执行事件 0 2016-04-27 10:00:13 本文章向码农介绍jquery如何判断滚动条滚到页面底部并执行事件.首先理解三个dom元素, ...

  6. JS滚动条到网页底部自动加载更多内容

    2019独角兽企业重金招聘Python工程师标准>>> <html> <head> <meta charset="gb18030"  ...

  7. 纯js监听滚动条到底部(vue版)

    项目中,因为数据量过大,为提高页面性能,采用页面滑动 滚动条到底部的时候再进行数据请求分页,这边给大给个核心,结合vue的生命周期用纯javascript写的一个监听函数 第一个我们需要知道几个属性值 ...

  8. php滚动条怎么用,如何让滚动条自动滚到最底部

    让滚动条自动滚到最底部的方法:首先在DIV的底部添加一隐藏元素"element":然后调用"element.scrollIntoView()"方法:最后使元素滚 ...

  9. js设置滚动条到div底部

    /**      * 设置聊天框中的滚动条始终在底部      */     function setScrollForBottom(id){         var height = documen ...

最新文章

  1. 作为计算机专业的你,这些点你命中了哪些?
  2. Android Tab 选项卡的简单实现
  3. File-nodejs
  4. HttpServletRequest HttpServletResponse ServletException 重新打开后报红解决方法
  5. Servlet Cookie处理
  6. 彻底搞懂JS无缝滚动代码
  7. DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  8. Mongodb数据库(1.mongodb的介绍(非关系型数据库)下载与安装(Windows10))
  9. GPU Gems1 - 2 水刻蚀的渲染
  10. python 控制有线网卡_Python 使用指定的网卡发送HTTP请求的实例
  11. C++从0到1的入门级教学(二)——数据类型
  12. “不差钱”华为刷屏 拟募资60亿!
  13. jsx怎么往js里传参数_给js文件传参数(详解)
  14. 大数据ETL开发之图解Kettle工具(入门到精通)
  15. Apache高并发测试工具JMeter
  16. json 转 实体对象 报解析错误
  17. 韦小宝真的幸福吗 | Random Forest
  18. 赛事相关 | 你好,微信大数据挑战赛,我是TI-ONE
  19. windows版 redis启动、rabbitMQ启动、kafka启动
  20. 计算机毕业设计Node.js+Express智慧工地管理系统(源码+程序+lw+远程调试)

热门文章

  1. python 仪表驱动_技术文章 | 锐视模块化仪器python驱动使用说明
  2. RTX 实时系统 IntervalZero 官方文档
  3. SQL语句的优化(常规SQL语句的优化)
  4. cobaltstrike权限维持
  5. 蓝桥杯省赛真题2014题解
  6. Arduino + 74HC595实现24x24点阵贪吃蛇游戏
  7. java课后习题答案_《java课后习题答案》.doc
  8. [GCC]告警信息梳理
  9. 常用的时间系统有哪些?
  10. 半导体放电管TSS的特性参数及选型