基于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+json实现数据列表分页示例代码
Nov 15 Javascript
jQuery插件boxScroll实现图片轮播特效
Jul 14 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
微信小程序promsie.all和promise顺序执行
Oct 27 Javascript
Angular Renderer (渲染器)的具体使用
May 03 Javascript
在Vue-cli里应用Vuex的state和mutations方法
Sep 16 Javascript
vue动画效果实现方法示例
Mar 18 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
JavaScript 如何在浏览器中使用摄像头
Dec 02 Javascript
微信小程序canvas实现签名功能
Jan 19 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代码
2007/03/03 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP面向对象法则
2012/02/23 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php防止sql注入简单分析
2015/03/18 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
各营销点岗位职责范本
2014/03/05 职场文书
门前三包责任书
2014/04/15 职场文书
小学英语复习计划
2015/01/19 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
运动会1000米加油稿
2015/07/21 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书