js 原生判断内容区域是否滚动到底部的实例代码


Posted in Javascript onNovember 15, 2017

逻辑

判断内容滚动到底需要知道的信息

内容区域的真实高度(也就是滚动区域)

滚动条距离顶部的位置

内容区域的可见高度

分别对应下面的三个API。

element.scrollHeight 获取元素内容高度,,,【只读属性】

element.scrollTop 可以获取或者设置元素的偏移值,常用于,计算滚动条的位置,当一个元素的容器没有产生垂直方向的滚动条,那它的 scrollTop 的值默认为0.

element.clientHeight 读取元素的可见高度【只读属性】

下面直接引用MDN上面的一个经典的公式

判定元素是否滚动到底

如果元素滚动到底,下面等式返回true,没有则返回false.

element.scrollHeight - element.scrollTop === element.clientHeight

案例-用户使用协议

只有等用户阅读完协议才可以点击同意,也就是说滚动条到底部之后代表完成阅读

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>tab</title>
  <style>
    textarea{height: 200px;width: 300px}
  </style>
</head>
<body>

<p>
  <textarea>
    用户咨询条款
    一、咨询系统提供的服务

1、本网站咨询系统(以下简称“本系统”)为用户提供参与各种咨询项目(以下简称“项目”)的机会。用户在包之网上注册成为会员,并可申请某一专家会员通过包之网平台及电话等方式为其提供咨询服务。

2、您应按照您想要咨询的专家其所对应的专家收费金额,根据您希望互动/通话时间的长短,预先存入咨询费用,方可进行预约、咨询。咨询完成后,剩余的款项将在15个工作日内直接退还给您。您应提供详细的收款信息,否则本网站不承担任何责任。提请您注意,若预存金额过低,可能导致咨询中断。咨询费用根据本网站标准的专家收费金额及实际通话时间进行计算。您同意因银行处理本网站对您的每一笔付款所产生的全部费用将由您自行承担。

3、如果您对专家的工作内容或提供咨询服务质量等有异议,则在此等争议完全解决之前,本网站将扣留应付给您的款项。

4、如果您需要发票,应直接向提供咨询的专家要求,本网站不提供任何发票。

5、专家收费详见本网站不时发布的专家收费金额。专家收费金额及其修改均为本条款不可分割的组成部分,请您申请前仔细查看。

6、本网站根据实际情况尽可能根据您的要求、申请与专家进行匹配, 但专家有权不予提供服务。

  </textarea>
</p>
<p>
  <input type="checkbox" value="1" disabled="disabled"> 同意
</p>
<script>
  //获取checkbox元素
  var checkbox=document.querySelector('input[type=checkbox]');

  document.querySelector('textarea').addEventListener('scroll',function () {

    //读取内容区域的真实高度(滚动条高)
//    console.log(this.scrollHeight);

    //读取滚动条的位置
//    console.log(this.scrollTop);

    //设置滚动到的位置
//      this.scrollTop=800;

    //读取元素的高度
//    console.log(this.clientHeight)

    //意思就是内容总体的高度 - 滚动条的偏移值 === 元素的高度(包含内边)但不包含外边距,边框,以及滚动条
    if(this.scrollHeight-this.scrollTop===this.clientHeight){
      console.log("到达底部");
      //移除disabled属性
      checkbox.removeAttribute('disabled')
    }

  })


</script>
</body>
</html>

好吧,今天突然 看到mdn上面的这个API。脑补了一下
Element.scrollTop

以上这篇js 原生判断内容区域是否滚动到底部的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
5 cool javascript apps
Mar 24 Javascript
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
使用jQuery操作Cookies的实现代码
Oct 09 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 Javascript
js验证身份证号有效性并提示对应信息
Oct 19 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
js HTML5 canvas绘制图片的方法
Sep 08 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
Nov 15 #Javascript
判断div滑动到底部的scroll实例代码
Nov 15 #Javascript
Vue.js实现列表清单的操作方法
Nov 15 #Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 #Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 #Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 #Javascript
bootstrap paginator分页插件的两种使用方式实例详解
Nov 14 #Javascript
You might like
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
php 正则匹配函数体
2009/08/25 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
PHP读取xml方法介绍
2013/01/12 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
深入浅出php socket编程
2015/05/13 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
Python如何实现文本转语音
2016/08/08 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Sublime开发python程序的示例代码
2018/01/24 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python中栈的原理及实现方法示例
2019/11/27 Python
django项目中新增app的2种实现方法
2020/04/01 Python
Python如何将函数值赋给变量
2020/04/28 Python
外贸采购员求职的自我评价
2013/11/26 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
北京大学自荐信范文
2014/01/28 职场文书
高三家长寄语
2014/04/03 职场文书
《云房子》教学反思
2014/04/20 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技