解决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地图动态实例代码(圆圈向外扩散)
Jun 15 HTML / CSS
深入CSS3 动画效果的总结详解
May 09 HTML / CSS
一款纯css3实现的非常实用的鼠标悬停特效演示
Nov 05 HTML / CSS
CSS3实现网站商品展示效果图
Jan 18 HTML / CSS
CSS3实现线性渐变用法示例代码详解
Aug 07 HTML / CSS
HTML5网页音乐播放器的示例代码
Nov 09 HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
Jun 03 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
Jan 07 HTML / CSS
HTML5 video 视频标签使用介绍
Feb 03 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
Jan 03 HTML / CSS
AmazeUI 导航条的实现示例
Aug 14 HTML / CSS
css3带你实现3D转换效果
Feb 24 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-MySQL教程归纳总结
2008/06/07 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
Python深入学习之闭包
2014/08/31 Python
python 爬取微信文章
2016/01/30 Python
python实现彩票系统
2020/06/28 Python
python实现大转盘抽奖效果
2019/01/22 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
公司领导推荐信
2013/11/12 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
化妆品活动策划方案
2014/05/23 职场文书
消防安全宣传口号
2014/06/10 职场文书
争先创优活动总结
2014/08/27 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
mysql 子查询的使用
2022/04/28 MySQL