解决HTML5中滚动到底部的事件问题


Posted in HTML / CSS onAugust 22, 2019

问题:在H5中,我们有这样的需求:例如有列表的时候,滚动到底部时,需要加载更多。

解决方案:可以采用window的滚动事件进行处理

分析:如果滚动是针对整个屏幕而言的(不针对于某个界面小块),那么这个应该是是成立的:屏幕的高度+最大滚动的距离 = 内容的高度

代码实现:

 

<html> 
    <head> 
    <meta charset="UTF-8">
        <title>监听滚动到底部滚动底部</title> 
        <style> 
.div2{
width:100px;
height:100px;
border:1px solid red
}
*{
margin:0
}
.button1:active{
   background:red
}
body{
height:375px;
width:667px;
border:1px solid red
}
.div1{
height:600px;
width:100%;
background:red
}
.div2{
height:600px;
width:100%;
background:green
}
.div3{
height:600px;
width:100%;
background:blue
}
.div4{
height:600px;
width:100%;
background:yellow
}
        </style> 
    </head> 
    <body > 
    <div class="div0">
    <div class="div1"></div>
    <div class="div2"></div>
    <div class="div3"></div>
    <div class="div4"></div>
    <div class="div5"></div>
    </div>
    </body> 
    <script>
    window.onload = function(){
  //获取容器父元素
    var div0 = document.getElementsByClassName('div0')[0];
    //height 计算属性的高度
    var height = parseInt((window.getComputedStyle(div0, null).height).replace('px', ''));
    console.log(height,"div0的计算高度")
    window.onscroll = function(){
/*
scrollTop 为滚动条顶端距离界面右上角的距离,这里采用了兼容性写法
*/
let scrollTop = document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
     //+-5是为了保证一定的弹性,并非要刚好相等才出发,
    if(height-5<=scrollTop+clientHeight&&scrollTop+clientHeight<=height+5){
      console.log('监听成功','到达底部')
    }
    }
    }
    </script>
</html>

代码的相关说明:很多时候,列表加载,我们不能够把装载子元素的父容器高度设死,此时采用style设置为auto时,element.style.height也会等于auto ,建议采用clientHeight或者利用计算样式 getComputedStyle计算高度

总结

以上所述是小编给大家介绍的解决HTML5中滚动到底部的事件问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

HTML / CSS 相关文章推荐
CSS3简单实现照片墙
Dec 12 HTML / CSS
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
Nov 16 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
Jan 26 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
Mar 17 HTML / CSS
Data URI scheme详解和使用实例及图片base64编码实现方法
May 08 HTML / CSS
HTML5实现晶莹剔透的雨滴特效
May 14 HTML / CSS
常用的HTML5列表标签
Jun 20 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
Mar 01 HTML / CSS
HTML5声音录制/播放功能的实现代码
May 03 HTML / CSS
用position:sticky完美解决小程序吸顶问题的实现方法
Apr 24 HTML / CSS
为什么你写的height:100%不起作用
May 10 HTML / CSS
HTTP中的Content-type详解
Jan 18 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
Aug 20 #HTML / CSS
html5 canvas实现给图片添加平铺水印
Aug 20 #HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
Aug 16 #HTML / CSS
HTML5自定义属性的问题分析
Aug 16 #HTML / CSS
HTML5实现视频弹幕功能
Aug 09 #HTML / CSS
Canvas高级路径操作之拖拽对象的实现
Aug 05 #HTML / CSS
Canvas多边形绘制的实现方法
Aug 05 #HTML / CSS
You might like
10条PHP高级技巧[修正版]
2011/08/02 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
探讨php中header的用法详解
2013/06/07 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
python实现统计代码行数的小工具
2019/09/19 Python
python框架flask表单实现详解
2019/11/04 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
信息管理专业推荐信
2013/10/29 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
赔偿协议书
2015/01/27 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
改造DE1103三步曲
2022/04/07 无线电