解决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 background-image颜色渐变的实现代码
Sep 13 HTML / CSS
css3中的calc函数浅析
Jul 10 HTML / CSS
css3实现波纹特效、H5实现动态波浪效果
Jan 31 HTML / CSS
CSS3制作文字半透明倒影效果的两种实现方式
Aug 08 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
May 31 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
html5新增的定时器requestAnimationFrame实现进度条功能
Dec 13 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
Jun 08 HTML / CSS
HTML5拖拽的简单实例
May 30 HTML / CSS
HTML5 新标签全部总汇(推荐)
Jun 13 HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 HTML / CSS
Canvas波浪花环的示例代码
Aug 21 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
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
在Python中使用模块的教程
2015/04/27 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
python多维数组切片方法
2018/04/13 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Python构建图像分类识别器的方法
2019/01/12 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python getpass模块用法及实例详解
2019/10/07 Python
python next()和iter()函数原理解析
2020/02/07 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
教师专业理论水平的自我评价分享
2013/11/09 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
java实现面板之间切换功能
2022/06/10 Java/Android