使用dropload.js插件进行下拉刷新
移动端的下拉刷新是一个比较常见的功能了,网上也有很多框架,插件都有这种功能,所以直接拿来用就好了。
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插件进行下拉刷新的更多相关文章
- H5页面基于iScroll.js插件实现下拉刷新,上拉加载更多
前言 在我之前的项目中,页面总是干巴巴的,用户的体验不是特别完美,我也是一直觉得把设计师给到的psd做出来就好,很少考虑用户的感受.我喜欢看不同的App,操作每个步骤,观赏每个能和我互动的交互设计效果 ...
- 使用iscroll插件实现下拉刷新功能
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- Ionic Js三:下拉刷新
在加载新数据的时候,我们需要实现下拉刷新效果,代码如下: HTML 代码 <body ng-app="starter" ng-controller="actions ...
- js 前端实现下拉刷新 上拉加载
效果 css html,body{ height:100%; // 其他界面未设置html 无法监听scroll } /* 下拉刷新 */ .refresh-loading { transition: ...
- 【H5】dropload (移动端下拉刷新,上拉加载)
插件概要地址:http://ximan.github.io/dropload/ 一般下载其中的demo2对照修改即可使用. 小吐槽.我在项目中用的时候,有个后端说ajax麻烦但是还是要做体现他很热爱工 ...
- js判断是否下拉刷新
if(document.body.scrollTop + window.innerHeight>=document.body.clientHeight-10){ this.loadPointsL ...
- mui下拉刷新上拉加载
新外卖商家端主页订单大厅页面 使用mui双webview,实现下拉刷新上拉加载 主页面: order_index.html <!doctype html> <html> < ...
- vue 下拉刷新实现
[手动实现下拉刷新]可以用vue-pull-refash 插件代替 //下拉刷新 let scroll = this.$ref.scroll // 获取当前要拖拽的元素 let top = scrol ...
- 移动端下拉刷新、加载更多插件dropload.js(基于jQuery/Zepto)
移动端下拉刷新.加载更多插件dropload.js(基于jQuery/Zepto) 原文:http://www.grycheng.com/?p=1869 废话不多说,先让大家看一下案例效果: DEMO ...
随机推荐
- Linux系统下C语言如何调用scalapack中的函数
在并行计算中经常需要调用scalapck(并行化的lapack)函数库里面的函数进行编程,这里简单介绍在C语言如何调用scalapck中的矩阵向量乘的函数. 注意:scalapack中的函数是用for ...
- my new start
my new start in blog csdn : today i formally migrate my personal technical blog from sina to here in ...
- SNS团队Beta阶段第二次站立会议(2017.05.23)
1.立会照片 2.每个人的工作 每个成员的分工: 成员 今天已完成的工作 明天计划完成的工作 罗于婕 完善代码规范文档 辅助完善生词本 龚晓婷 界面优化 辅助开发新功能 林仕庄 界面图标不对齐bug ...
- 201521123102 《Java程序设计》第1周学习总结
#1. 本周学习总结(1)初步了解java程序的运行环境,通过命令行语句编译简单的java程序(2)使用notepad编写,cmd下进入文件夹编译程序(3)学习使用各种快捷键补全代码(4)能够区别jd ...
- Sublime使用Ctrl+`作为快捷键弹出Console没有反映的解决办法
很多Sublime新人都遇到了这个问题,到网上搜,信息很片面,而且不少都是旧版本的.于是有了这篇文章. 默认Sublime使用Ctrl+`作为快捷键弹出Console,但不同的系统抑或安装 ...
- 201521123117 《Java程序设计》第9周学习总结
1. 本周学习总结 2. 书面作业 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Numbe ...
- 201521123049 《JAVA程序设计》 第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...
- 一个Markdown的例子
一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...
- Mybatis第一篇【介绍、快速入门、工作流程】
什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- 《Head First Java》读书笔记(3) - 异常和IO
1.异常处理 我们在调用某个方法时,会被编译器告知需要捕捉异常和处理,意味着你调用的这个方法是有风险的,可能会在运行期间出状况,你必须写出在发生状况时加以处理的代码,未雨绸缪!这就是Java中异常处理 ...