移动端的下拉刷新是一个比较常见的功能了,网上也有很多框架,插件都有这种功能,所以直接拿来用就好了。

html代码:

<!--选项卡-->
<div class="tab">
<div class="active fl tabL item">
<span>少儿培优</span>
</div>
<div class="tabR fr item">
<span>老年大学</span>
</div>
</div>
<!--选项卡中的内容-->
<div class="content">
<!--第一页-->
<ul class="content-01 lists"></ul>
<!--第二页-->
<ul class="content-02 lists"></ul>
</div>

script代码

var itemIndex = 0;
var tab1LoadEnd = false;
var tab2LoadEnd = false;

$('.tab .item').on('click',function(){
var $this = $(this);
itemIndex = $this.index();
});

//AJAX数据请求JS控制加载
var counter1 = 0;
// 每页展示4个
var num1 = 4;
var pageStart1 = 0,pageEnd1 = 0;

var counter2 = 0;
// 每页展示4个
var num2 = 4;
var pageStart2 = 0,pageEnd2 = 0;
// dropload
var dropload = $('.content').dropload({
scrollArea : window,
domDown : {
domClass : 'dropload-down',
domRefresh : '<div class="dropload-refresh">↑上拉加载更多</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>',
domNoData : '<div class="dropload-noData">暂无更多</div>'
},
loadDownFn : function(me){
// 加载菜单一的数据
if(itemIndex == '0'){
$.ajax({
type: 'GET',
url:"JSON/jsonL_education.js",
dataType: 'json',
success: function(data){
var result = '';
counter1++;
pageEnd1 = num1 * counter1;
pageStart1 = pageEnd1 - num1;

if(pageStart1 <= data.length){
for(var i = pageStart1; i < pageEnd1; i++){
result += '<li class="content-A">' +
'<div class="fl content-L">' +
'<img src='+data[i].image+'>' +
'</div>' +
'<div class="fr content-R">' +
'<h4>'+data[i].title+'</h4>' +
'<h5>'+data[i].main+'</h5>' +
'<br><em>'+data[i].price+'</em><a href="javascript:void(0);">查看详情</a>' +
'</div>'+
'</li>';
if((i + 1) >= data.length){
// 数据加载完
tab1LoadEnd = true;
// 锁定
me.lock();
// 无数据
me.noData();
break;
}
}
// 为了测试,延迟1秒加载
setTimeout(function(){
$('.lists').eq(0).append(result);
// 每次数据加载完,必须重置
me.resetload();
},100);
}
},
error: function(xhr, type){
alert('Ajax error!');
// 即使加载出错,也得重置
me.resetload();
}
});

}
// 加载菜单二的数据
else if(itemIndex == '1'){
var result = '';
$.ajax({
type: 'GET',
url:"JSON/jsonR_education.js",
dataType: 'json',
success: function(data){
var result = '';
counter2++;
pageEnd2 = num2 * counter2;
pageStart2 = pageEnd2 - num2;
if(pageStart2 <= data.length){
for(var i = pageStart2; i < pageEnd2; i++){
result += '<li class="content-A">' +
'<div class="fl content-L">' +
'<img src='+data[i].image+'>' +
'</div>' +
'<div class="fr content-R">' +
'<h4>'+data[i].title+'</h4>' +
'<h5>'+data[i].main+'</h5>' +
'<br><em>'+data[i].price+'</em><a href="javascript:void(0);">查看详情</a>' +
'</div>'+
'</li>';
if((i + 1) >= data.length){
// 数据加载完
tab2LoadEnd = true;
// 锁定
me.lock();
// 无数据
me.noData();
break;
}
}
// 为了测试,延迟1秒加载
setTimeout(function(){
$('.lists').eq(1).append(result);
// 每次数据加载完,必须重置
me.resetload();
},100);
}
},
error: function(xhr, type){
alert('Ajax error!');
// 即使加载出错,也得重置
me.resetload();
}
});
}
}
});


使用dropload.js插件进行下拉刷新的更多相关文章

  1. H5页面基于iScroll.js插件实现下拉刷新,上拉加载更多

    前言 在我之前的项目中,页面总是干巴巴的,用户的体验不是特别完美,我也是一直觉得把设计师给到的psd做出来就好,很少考虑用户的感受.我喜欢看不同的App,操作每个步骤,观赏每个能和我互动的交互设计效果 ...

  2. 使用iscroll插件实现下拉刷新功能

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. Ionic Js三:下拉刷新

    在加载新数据的时候,我们需要实现下拉刷新效果,代码如下: HTML 代码 <body ng-app="starter" ng-controller="actions ...

  4. js 前端实现下拉刷新 上拉加载

    效果 css html,body{ height:100%; // 其他界面未设置html 无法监听scroll } /* 下拉刷新 */ .refresh-loading { transition: ...

  5. 【H5】dropload (移动端下拉刷新,上拉加载)

    插件概要地址:http://ximan.github.io/dropload/ 一般下载其中的demo2对照修改即可使用. 小吐槽.我在项目中用的时候,有个后端说ajax麻烦但是还是要做体现他很热爱工 ...

  6. js判断是否下拉刷新

    if(document.body.scrollTop + window.innerHeight>=document.body.clientHeight-10){ this.loadPointsL ...

  7. mui下拉刷新上拉加载

    新外卖商家端主页订单大厅页面 使用mui双webview,实现下拉刷新上拉加载 主页面: order_index.html <!doctype html> <html> < ...

  8. vue 下拉刷新实现

    [手动实现下拉刷新]可以用vue-pull-refash 插件代替 //下拉刷新 let scroll = this.$ref.scroll // 获取当前要拖拽的元素 let top = scrol ...

  9. 移动端下拉刷新、加载更多插件dropload.js(基于jQuery/Zepto)

    移动端下拉刷新.加载更多插件dropload.js(基于jQuery/Zepto) 原文:http://www.grycheng.com/?p=1869 废话不多说,先让大家看一下案例效果: DEMO ...

随机推荐

  1. Linux系统下C语言如何调用scalapack中的函数

    在并行计算中经常需要调用scalapck(并行化的lapack)函数库里面的函数进行编程,这里简单介绍在C语言如何调用scalapck中的矩阵向量乘的函数. 注意:scalapack中的函数是用for ...

  2. my new start

    my new start in blog csdn : today i formally migrate my personal technical blog from sina to here in ...

  3. SNS团队Beta阶段第二次站立会议(2017.05.23)

    1.立会照片 2.每个人的工作 每个成员的分工: 成员 今天已完成的工作 明天计划完成的工作 罗于婕 完善代码规范文档 辅助完善生词本 龚晓婷 界面优化  辅助开发新功能 林仕庄 界面图标不对齐bug ...

  4. 201521123102 《Java程序设计》第1周学习总结

    #1. 本周学习总结(1)初步了解java程序的运行环境,通过命令行语句编译简单的java程序(2)使用notepad编写,cmd下进入文件夹编译程序(3)学习使用各种快捷键补全代码(4)能够区别jd ...

  5. Sublime使用Ctrl+`作为快捷键弹出Console没有反映的解决办法

    很多Sublime新人都遇到了这个问题,到网上搜,信息很片面,而且不少都是旧版本的.于是有了这篇文章.       默认Sublime使用Ctrl+`作为快捷键弹出Console,但不同的系统抑或安装 ...

  6. 201521123117 《Java程序设计》第9周学习总结

    1. 本周学习总结 2. 书面作业 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Numbe ...

  7. 201521123049 《JAVA程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  8. 一个Markdown的例子

    一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...

  9. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  10. 《Head First Java》读书笔记(3) - 异常和IO

    1.异常处理 我们在调用某个方法时,会被编译器告知需要捕捉异常和处理,意味着你调用的这个方法是有风险的,可能会在运行期间出状况,你必须写出在发生状况时加以处理的代码,未雨绸缪!这就是Java中异常处理 ...