基于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程序 入门者学习
Jul 09 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
Jan 09 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
Jun 23 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
Feb 04 Javascript
不用一句js代码初始化组件
Jan 27 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
vue.js实现含搜索的多种复选框(附源码)
Mar 23 Javascript
swiper 解决动态加载数据滑动失效的问题
Feb 26 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
May 07 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 Javascript
JavaScript与JQuery框架基础入门教程
Jul 15 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
PHP图片加水印实现方法
2016/05/06 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
python urllib爬虫模块使用解析
2019/09/05 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
python安装sklearn模块的方法详解
2020/11/28 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
培训演讲稿范文
2014/01/12 职场文书
学生安全责任书模板
2014/07/25 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
初中同学会致辞
2015/08/01 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
Python OpenCV超详细讲解基本功能
2022/04/02 Python