解决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 相关文章推荐
纯CSS实现预加载动画效果
Sep 06 HTML / CSS
css3 border-radius属性详解
Jul 05 HTML / CSS
纯css3(无图片/js)制作的几个社交媒体网站的图标
Mar 21 HTML / CSS
纯CSS3实现圆角效果(含IE兼容解决方法)
May 07 HTML / CSS
css3实现3d旋转动画特效
Mar 10 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
Jun 29 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
Apr 21 HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
May 03 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
Jul 18 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
May 07 HTML / CSS
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
Mar 31 HTML / CSS
关于CSS浮动与取消浮动的问题
Jun 28 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多线程之内部多线程实例分析
2015/03/09 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
设定php简写功能的方法
2019/11/28 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
Python 字符串操作方法大全
2014/03/11 Python
pycharm 使用心得(五)断点调试
2014/06/06 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
python操作excel的方法
2018/08/16 Python
Python测试模块doctest使用解析
2019/08/10 Python
Python获取时间戳代码实例
2019/09/24 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Etam德国:内衣精品店
2019/08/25 全球购物
大学生旷课检讨书
2014/01/22 职场文书
和睦家庭事迹
2014/05/14 职场文书
师范生自荐信模板
2014/05/28 职场文书
稽核岗位职责
2015/02/10 职场文书
股东大会通知
2015/04/24 职场文书
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript