解决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新特性应用之过渡与动画
Jan 10 HTML / CSS
CSS3 Columns分列式布局方法简介
May 03 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
Oct 10 HTML / CSS
CSS3 实现童年的纸飞机
May 05 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
Apr 07 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
Apr 28 HTML / CSS
Bootstrap 学习分享
Nov 12 HTML / CSS
简单介绍HTML5中的文件导入
May 08 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
canvas 实现 github404动态效果的示例代码
Nov 15 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
Mar 19 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 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和ACCESS写聊天室(四)
2006/10/09 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
php结合飞信 免费天气预报短信
2009/05/07 PHP
PHP实现递归无限级分类
2015/10/22 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP Include文件实例讲解
2019/02/15 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
python实现备份目录的方法
2015/08/03 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
利用python实现AR教程
2019/11/20 Python
Python pymsql模块的使用
2020/09/07 Python
python3排序的实例方法
2020/10/20 Python
python中yield的用法详解
2021/01/13 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
佳能英国官方网站:Canon UK
2017/08/08 全球购物
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
大学生应聘推荐信范文
2013/11/19 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
4种方法python批量修改替换列表中元素
2022/04/07 Python
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL