基于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 输入框数字限制插件
Nov 10 Javascript
javascript实现数字+字母验证码的简单实例
Feb 10 Javascript
JQuery动态添加和删除表格行的方法
Mar 09 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
Jun 17 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 Javascript
JS实现给对象动态添加属性的方法
Jan 05 Javascript
vue-resouce设置请求头的三种方法
Sep 12 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
JavaScript实现美化滑块效果
May 17 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
第七节--类的静态成员
2006/11/16 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
微信小程序表单验证功能完整实例
2017/12/01 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
初步理解Python进程的信号通讯
2015/04/09 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
个人现实表现材料
2014/02/04 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
与美同行演讲稿
2014/09/13 职场文书
前台岗位职责
2015/02/13 职场文书
ICOM R71E和R72E图文对比解说
2022/04/07 无线电