基于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里绝对用的上的字符分割函数总结
Jul 31 Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 Javascript
jquery根据一个值来选中select下的option实例代码
Aug 29 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
ionic2 tabs 图标自定义实例
Mar 08 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
原生JS实现的简单轮播图功能【适合新手】
Aug 17 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
Aug 30 Javascript
微信小程序实现单列下拉菜单效果
Apr 25 Javascript
React中使用UMEditor的方法示例
Dec 27 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
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
深入理解JS DOM事件机制
2016/08/06 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
微信小程序block的使用教程
2018/04/01 Javascript
vue实现循环切换动画
2018/10/17 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
单位作风建设自查报告
2014/10/23 职场文书
2015高考寄语集锦
2015/02/27 职场文书
初二物理教学反思
2016/02/19 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript