html5实现下拉加载
介绍:
实现手机下拉自动加载数据。
原理:
通过检测页面内容距离加上当前滚动的距离大于或等于滚动距离总长时,调用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实现下拉加载的更多相关文章
- 关于MJRefresh的下拉加载数据bug
当没有更多数据的时候显示NoMoreData 我的理解是先结束刷新再显示没有更多 今天之前一直没发现有问题 贴之前的代码 [self.collectionView reloadData]; [self ...
- JQuery实现无刷新下拉加载图片
最近做的一个项目需要做页面无刷新下拉加载图片,调研了一番,大多都采用检测滚动条达到底部,然后利用ajax加载下一页数据对页面数据进行添加,根据这一逻辑,自己写了一个,具体代码如下: JQu ...
- 原生JS下拉加载插件分享。
无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...
- iscroll5 上拉,下拉 加载数据
我这里的思路是上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码.请勿照搬.样式没怎么调,可以加载gif动画.1.没有数据时候,下拉可以加载数据.2.没有数据时候,点击也可以加载数据.3.其余 ...
- MUI - 上拉刷新/下拉加载
新闻信息列表必备的功能,支持Table,Ul等列表. 以下是DIV版本,在安卓端或者ios端必须使用双webview模式,传送门:http://dev.dcloud.net.cn/mui/pulldo ...
- ionic下拉加载自动触发
ionic提供的下拉加载,是要滑动去下拉加载,没有提供api自动触发下拉加载,比如刚进页面,或者切换tab时想触发一次下拉加载. 添加如下service: angular.module('YourAp ...
- WP & Win10开发:实现ListView下拉加载的两种方法
1.通过ListView控件的ContainerContentChanging方法.该方法在列表项被实例化时触发,在列表项最后一个项目实例化的时候触发刷新数据逻辑就可以实现下拉加载了. 代码如下:// ...
- 美团、点评、猫眼App下拉加载效果的源码分享
今天我准备拿大众点评.美团.猫眼电影三款App的实例来分享一下APICloud下拉加载这个模块的效果. 美团App下拉加载效果 以美团中的下拉酷似动画的萌萌着小人儿效果作为参考,来实现的一个加载模 ...
- 集成iscroll 下拉加载更多 jquery插件
一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...
随机推荐
- java监控文件夹下的文件变化使用jnotify
https://blog.csdn.net/codepython/article/details/42341243?utm_source=blogxgwz1 使用jnotify https://blo ...
- iOS多线程方案总结及使用详解
本篇文章整理了几种iOS中主要的多线程方案,提供了Swift和Objective-C两种语言的写法. 概述 iOS目前有四种多线程解决方案: NSThread GCD NSOperation Pthr ...
- 使用video.js支持flv格式
html5的video标签只支持mp4.webm.ogg三种格式,不支持flv格式,在使用video.js时,如果使用html5是会报错不支持. 修改了一下代码 js部分 videojs.option ...
- 第02章 Python快速入门
007.快速入门,边学边用 008.变量类型 print(type(变量)) 查看变量的了类型 现在常用的变量的类型有整型.浮点型.字符型 009.List基础模块 类型转换:str(8 ...
- Leetcode414Third Maximum Number第三大的数
给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...
- mysql 登录的时候设置编码 utf8
很多时候 导入sql 的时候需要命令行导入 但是有的时候容易出现乱码 因为字符集的问题 所以 尽量在登录的时候就设置编码 就不容易出错了 例如: mysql -uroot -p –default-ch ...
- MySQL加快批量更新 UPDATE优化
如果是更新为同样的内容,没啥难度,直接在where里面下功夫就好了,大家都懂,我要说的是针对更新内容不一样的情况 首先,先看看网上转载的方法: mysql 批量更新如果一条条去更新效率是相当的慢, 循 ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---适配器模式之TurkeyAdapter[转]
适配器模式的主要意图是对现有类的接口进行转换,以满足目标类的需求.其次,可以给目标类的接口添加新的行为(主要指方法).这一点容易与装饰模式混淆.从意图方面来看,装饰模式不改变(通常指增加)接口中的行为 ...
- spring cloud深入学习(六)-----熔断监控Hystrix Dashboard和Turbine
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数 ...
- Tomcate 启动异常,java.net.BindException: Address already in use: JVM_Bind:80的解决办法
一直用Tomcat,但是前几天突然报错: java.net.BindException: Address already in use: JVM_Bind:80 第一反应就是80端 ...