基于JavaScript实现移动端无限加载分页


Posted in Javascript onMarch 27, 2017

本文实例为大家分享了js实现移动端无限加载分页的具体代码,供大家参考,具体内容如下

原理:当滚动条到达底部时,执行下一页内容。

判断条件需要理解三个概念:
    1.scrollHeight 真实内容的高度
    2.clientHeight 视窗的高度,即在浏览器中所能看到的内容的高度
    3.scrollTop 视窗上面隐藏掉的部分,即滚动条滚动的距离

思路:

    1.使用fixed定位加载框
    2.使用$(window).scroll();方法来触发是否加载
    3.通过 真实内容高度 - 视窗高度 - 上面隐藏部分 < 10 ,作为加载触发的条件

代码样例

var page=1; //当前页的页码
      var flagNoData = false; //false
    var allpage; //总页码,会从后台获取
    function showAjax(page){
      $.ajax({
        url:"",
        type:"",
        data:"",
        success:function(data){
          //要执行的内容
          showContent();
            if(page>=data.allpage){ //当前页码大于等于总页码
            flagNoData = true;
            };
          page+=1;  //页数加1
        }
      })
    }
    function scrollFn(){
      //真实内容的高度
      var pageHeight = Math.max(document.body.scrollHeight,document.body.offsetHeight);
      //视窗的高度
      var viewportHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;
      //隐藏的高度
      var scrollHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
        if(falgNoData){ //数据全部加载完了
         return;
        }else if(pageHeight - viewportHeight - scrollHeight < 10){  //如果满足触发条件,执行
        showAjax(page);
      }
    }
    $(window).bind("scroll",scrollFn);  //绑定滚动事件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 快速排序函数代码
May 30 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
在JavaScript中如何解决用execCommand(
Oct 19 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
May 30 Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 Javascript
基于es6三点运算符的使用方法(实例讲解)
Oct 12 Javascript
vue单个组件实现无限层级多选菜单功能
Apr 10 Javascript
浅谈React 服务器端渲染的使用
May 08 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 Javascript
javascript中函数的写法实例代码详解
Oct 28 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
Aug 31 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
Mar 27 #Javascript
JS简单实现数组去重的方法示例
Mar 27 #Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 #jQuery
基于JavaScript实现焦点图轮播效果
Mar 27 #Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
Mar 27 #Javascript
JS闭包用法实例分析
Mar 27 #Javascript
vue 2.0组件与v-model详解
Mar 27 #Javascript
You might like
PHPTree――php快速生成无限级分类
2018/03/30 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
PHP PDO操作总结
2014/11/17 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
flask框架路由常用定义方式总结
2019/07/23 Python
个人自荐书
2013/12/20 职场文书
招聘专员岗位职责
2014/03/07 职场文书
共产党员承诺书
2014/03/25 职场文书
买房协议书
2014/04/11 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
2019年工作总结范文
2019/05/21 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
使用CSS连接数据库的方式
2022/02/28 HTML / CSS