基于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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
Web 前端设计模式--Dom重构 提高显示性能
Oct 22 Javascript
获取客户端电脑日期时间js代码(jquery)
Sep 12 Javascript
js获取html页面节点方法(递归方式)
Dec 13 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
Jan 19 Javascript
JavaScript常用本地对象小结
Mar 28 Javascript
CodeMirror js代码加亮使用总结
Mar 25 Javascript
vue2里面ref的具体使用方法
Oct 27 Javascript
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
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
linux命令之调试工具strace的深入分析
2013/06/03 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
PDO::prepare讲解
2019/01/29 PHP
Prototype Date对象 学习
2009/07/12 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
Python实现对象转换为xml的方法示例
2017/06/08 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
详解python中docx库的安装过程
2019/11/08 Python
python创建子类的方法分析
2019/11/28 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
广州某公司软件工程师面试题
2014/12/22 面试题
教师的实习自我鉴定
2013/12/17 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
女子职高个人自荐书
2014/02/01 职场文书
企业催款函范本
2015/06/24 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
2016七夕情人节寄语
2015/12/04 职场文书