介绍:

实现手机下拉自动加载数据。

原理:

通过检测页面内容距离加上当前滚动的距离大于或等于滚动距离总长时,调用ajax数据加载

事例:

var myMoreInfo = new iMoreInfo();
$(document).ready(function() {
    var nScrollHight = 0; //滚动距离总长(注意不是滚动条的长度)
    var nScrollTop = 0;   //滚动到的当前位置
    var nDivHight = $("#mainPanel").height();//页面距离
    $("#mainPanel").scroll(function() {
        nScrollHight = $(this)[0].scrollHeight;
        nScrollTop = $(this)[0].scrollTop;
        if (nScrollTop + nDivHight>= nScrollHight)
            myMoreInfo.ajax();
    });
});

2、初始化数据

function newsMonoScrollRefresh(category_id) {
    if (!category_id) category_id = 0;
    myMoreInfo.lister = ".listview";
    myMoreInfo.page = 2;
    myMoreInfo.url = config.webpath + "tools/user_ajax.ashx?action=get_article_list&channel=news&category_id=" + category_id;
    myMoreInfo.href = "/" + site.build_path + "/news_show.aspx";
    myMoreInfo.templateskin = templateskin;
    myMoreInfo.view = moreInfoNewsMono;
}

3、通过初始化数据,实现下拉加载信息

function iMoreInfo() {
    this.myScroll={};
    this.lister=".listview";
    this.page=1;
    this.url="";
    this.href="";
    this.templateskin="";
    this.setParm=function(parm,parmiScroll){
         if(parmiScroll) this.myScroll=parmiScroll;
         if(parm.lister) this.lister=parm.lister;
         if(parm.page && this.page<parm.page) this.page=parm.page;
         if(parm.url) this.url=parm.url;
         if(parm.href) this.href=parm.href;
         if(parm.templateskin) this.templateskin=parm.templateskin;
         //if(parmiScroll)parmiScroll.myScroll.refresh();
        return this;
     }
    this.view=moreInfoNews;
    this.dr={};
    this.ajax=function(){
         myMoreInfo=this;
        $.ajax({
            success: function (str, data) {
                str = jQuery.parseJSON(str);
                if (str.status == "1") {
                    for (var i = 0; i < str.data.ds.length; i++) {
                        myMoreInfo.dr=str.data.ds[i];
                        $(myMoreInfo.lister).append(myMoreInfo.view());//下拉添加html模版
                    }
                    myMoreInfo.page =myMoreInfo.page +1;
                    try {
                        if (myMoreInfo.myScroll) myMoreInfo.myScroll.myScroll.refresh();
                    } catch (e) {
                    }
                }
                else {}
            },
            error: function (error) { },
            url: myMoreInfo.url+'&page=' + myMoreInfo.page, /*设置post提交到的页面*/
            type: "post", /*设置表单以post方法提交*/
            dataType: "text" /*设置返回值类型为文本*/
         });
    };
}

//html模版

function moreInfoNewsMono() {
  
 var viewString = "<li><img id='imgmono' 
src="+this.dr.img_url+"><a id='a_mono' 
href="+this.href+"?id="+this.dr.id+" data-ignore=true>";
  
 viewString = viewString + "<p>" + this.dr.title +
"</p><div class="note"><p>" + this.dr.zhaiyao +
"</p>";
    viewString = viewString + " <p
style='margin-top: 7px'><i class="hot"><img style='width:
13px' src='"+this.templateskin+"/images/icons/view.png'>" +
this.dr.click + "</i>";
    viewString = viewString + "<i
class='date'>" + this.dr.add_time +
"</i></p></div></a></img></li>";
    return viewString;
}

html5实现下拉加载的更多相关文章

  1. 关于MJRefresh的下拉加载数据bug

    当没有更多数据的时候显示NoMoreData 我的理解是先结束刷新再显示没有更多 今天之前一直没发现有问题 贴之前的代码 [self.collectionView reloadData]; [self ...

  2. JQuery实现无刷新下拉加载图片

          最近做的一个项目需要做页面无刷新下拉加载图片,调研了一番,大多都采用检测滚动条达到底部,然后利用ajax加载下一页数据对页面数据进行添加,根据这一逻辑,自己写了一个,具体代码如下: JQu ...

  3. 原生JS下拉加载插件分享。

    无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...

  4. iscroll5 上拉,下拉 加载数据

    我这里的思路是上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码.请勿照搬.样式没怎么调,可以加载gif动画.1.没有数据时候,下拉可以加载数据.2.没有数据时候,点击也可以加载数据.3.其余 ...

  5. MUI - 上拉刷新/下拉加载

    新闻信息列表必备的功能,支持Table,Ul等列表. 以下是DIV版本,在安卓端或者ios端必须使用双webview模式,传送门:http://dev.dcloud.net.cn/mui/pulldo ...

  6. ionic下拉加载自动触发

    ionic提供的下拉加载,是要滑动去下拉加载,没有提供api自动触发下拉加载,比如刚进页面,或者切换tab时想触发一次下拉加载. 添加如下service: angular.module('YourAp ...

  7. WP & Win10开发:实现ListView下拉加载的两种方法

    1.通过ListView控件的ContainerContentChanging方法.该方法在列表项被实例化时触发,在列表项最后一个项目实例化的时候触发刷新数据逻辑就可以实现下拉加载了. 代码如下:// ...

  8. 美团、点评、猫眼App下拉加载效果的源码分享

    今天我准备拿大众点评.美团.猫眼电影三款App的实例来分享一下APICloud下拉加载这个模块的效果. 美团App下拉加载效果   以美团中的下拉酷似动画的萌萌着小人儿效果作为参考,来实现的一个加载模 ...

  9. 集成iscroll 下拉加载更多 jquery插件

    一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...

随机推荐

  1. Cesium 1.51新功能评测

    前言 之前介绍Cesium1.50版本的新功能时,很多人把1.50写成1.5.这两个版本可不一样,之间差了45个小版本号,1.5版本大概是Cesium三年前的版本了. Cesium每月月初的第一个工作 ...

  2. JS基础之EL表达式

    一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...

  3. 关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 转

    #!/usr/bin/python 是用来说明脚本语言是python的 是要用/usr/bin下面的程序(工具)python,这个解释器,来解释python脚本,来运行python脚本的. # -*- ...

  4. 通过url方式传递中文参数时出现的中文乱码问题的处理

    1.通过url将参数[会有中文的情况]传递到另外一个页面: window.location.href = "/XXXX/XXXX?searchcontent=" + Content ...

  5. hibernate 注释多表 级联操作

    一对多模型(单向) 说明: 一个客户对应多个地址,通过客户可以获得该客户的多个地址的信息.客户和地址是一对多的关系,并且客户与地址是单向关联的关系. 映射策略 # 外键关联:两个表的关系定义在一个表中 ...

  6. Device eth0 does not seem to be present, delaying initialization(VM虚拟机restart service出现此错误)

    >从vmware workstation中克隆(clone)了一个redhat6.0的虚拟机,启动之后发现网卡没有启动.于是重启一下network服务,发现提示错误信息“Device eth0 ...

  7. Luogu P2051 [AHOI2009]中国象棋(dp)

    P2051 [AHOI2009]中国象棋 题面 题目描述 这次小可可想解决的难题和中国象棋有关,在一个 \(N\) 行 \(M\) 列的棋盘上,让你放若干个炮(可以是 \(0\) 个),使得没有一个炮 ...

  8. 洛谷P4022 熟悉的文章

    题意:给定一个串集合s,每次给定一个串t,询问一个最大的L,使得存在一种划分能把t划分成若干个子串, 其中好的子串总长不小于0.9|t|.好的子串定义为长度不小于L且是s中某一个串的子串. 解:发现这 ...

  9. json字符串和对象的相互转换

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式. 同时,JSON是 JavaScript 原生格式,这 ...

  10. HTML连载58-绝对定位的参考点以及注意事项

    一.绝对定位参考点 1.规律: (1)默认情况下所有的绝对定位的元素,无论有没有祖先元素,都会以body作为参考点. <style> .box1{ width: 300px; height ...