基于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 相关文章推荐
jquery中实现简单的tabs插件功能的代码
Mar 02 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
Mar 13 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
Jun 23 Javascript
vue的props实现子组件随父组件一起变化
Oct 27 Javascript
vue自定义指令实现v-tap插件
Nov 03 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
实现高性能javascript的注意事项
May 27 Javascript
微信小程序中网络请求缓存的解决方法
Dec 29 Javascript
javascript利用键盘控制小方块的移动
Apr 20 Javascript
vue滑动吸顶及锚点定位的示例代码
May 10 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
php explode函数实例代码
2012/02/27 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
中专毕业生自荐信
2013/11/16 职场文书
怎样写好自我鉴定
2013/12/04 职场文书
上班看电影检讨书
2014/02/12 职场文书
心理健康日活动总结
2014/05/08 职场文书
大学迎新标语
2014/06/26 职场文书
最新离婚协议书范本
2014/08/19 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
团日活动总结格式
2015/05/11 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android