微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

dropload.js插件下拉刷新和上拉加载使用详解

本文实例为大家分享了dropload.js下拉刷新和上拉加载的具体代码,供大家参考,具体内容如下

第一步

,下载dropload插件,dropload插件下载地址 官方文档:

第二步

,将下载好的dropload插件中的dropload.css,dropload.min.js文件引入到页面中,注意还要引入 Jquery1.7 以上 或者 Zepto 二选一,不要同时都引用,因为dropload是基于jquery实现的

第三步

,将以下代码放到页面的最底部,注意是最底部,否则dropload插件获取不了高度

',domUpdate : '
',domLoad : '
加载中...
' },domDown : { domClass : 'dropload-down',domRefresh : '
',domLoad : '
加载中...
',domNoData : '
' },loadUpFn : function(me){ //下拉刷新需要调用的函数 alert("下拉刷新需要调用的函数"); //重置下拉刷新 me.resetload(); },loadDownFn : function(me){ //上拉加载更多需要调用的函数 alert("上拉加载更多需要调用的函数"); //定时器函数,为了看出上拉加载更多效果 setTimeout(function(){ // 每次数据加载完,必须重置 me.resetload(); },1000); } });

一些完整的例子 按需查看就好

示例一、

加载底部

$(function(){ // 页数 var page = 0; // 每页展示5个 var size = 5;

// dropload调用
$('.content').dropload({
scrollArea : window,loadDownFn : function(me){
page++;
// 拼接HTML
var result = '';
$.ajax({
type: 'GET',url: '
http://ons.me/tools/dropload/json.php?page='+page+'&size='+size,//配合后台接口
dataType: 'json',success: function(data){
var arrLen = data.length;
if(arrLen > 0){
for(var i=0; i<arrLen; i++){
result += '<a class="item opacity" href="'+data[i].link+'">'
+'<img src="'+data[i].pic+'" alt="">'
+'

'+data[i].title+'

'
+'<span class="date">'+data[i].date+''
+'';
}
// 如果没有数据
}else{
// 锁定
me.lock();
// 无数据
me.noData();
}
// 为了测试,延迟1秒加载
setTimeout(function(){
// 插入数据到页面,放到最后面
$('.lists').append(result);
// 每次数据插入,必须重置
me.resetload();
},1000);
},error: function(xhr,type){
alert('Ajax error!');
// 即使加载出错,也得重置
me.resetload();
}
});
}
});
});

示例二、

加载顶部、底部

rush:js;">

示例三、

多次加载

rush:js;"> $(function(){ //利用此写法,可以限制多次加载的个数。 var timer;

$('.header .ipt').on('input',function(){
var _length = $(this).val();
// 如果输入值不是数字或者是空,就跳出
if(isNaN(_length) || _length === ''){
return false;
}
clearTimeout(timer);
timer = setTimeout(function(){//也可不用定时器
// 清空内容
$('.lists').html('');
$('.dropload-down').remove();

var counter = 0;
// 每页展示4个
var num = 4;
var pageStart = 0,pageEnd = 0;
// dropload
$('.content').dropload({
scrollArea : window,loadDownFn : function(me){
$.ajax({
type: 'GET',url: 'json/more.json',success: function(data){
var result = '';
counter++;
pageEnd = num * counter;
pageStart = pageEnd - num;

for(var i = pageStart; i < pageEnd; i++){
result += '<a class="item opacity" href="'+data.lists[i].link+'"&gt;'
  +'<img src="'+data.lists[i].pic+'" alt=""&gt;'
  +'<h3>'+data.lists[i].title+'</h3>'
  +'<span class="date"&gt;'+data.lists[i].date+'</span>'
  +'</a>';
if((i + 1) >= _length || (i + 1) >= data.lists.length){
 // 锁定
 me.lock();
 // 无数据
 me.noData();
 break;
}
}
// 为了测试,延迟1秒加载
setTimeout(function(){
$('.lists').append(result);
// 每<a href="https://www.jb51.cc/tag/cishu/" target="_blank" class="keywords">次数</a>据加载完,必须重置
me.resetload();
},1000);

},type){
alert('Ajax error!');
// 即使加载出错,也得重置
me.resetload();
}
});
}
});
},500);
});

示例四、

固定布局,加载顶部、底部

rush:js;"> $(function(){ // 按钮操作 $('.header .btn').on('click',function(){ var $this = $(this); if(!!$this.hasClass('lock')){ $this.attr('class','btn unlock'); $this.text('解锁'); // 锁定 dropload.lock(); $('.dropload-down').hide(); }else{ $this.attr('class','btn lock'); $this.text('锁定'); // 解锁 dropload.unlock(); $('.dropload-down').show(); } });

// dropload
var dropload = $('.inner').dropload({
domUp : {
domClass : 'dropload-up',domload : '<div class="dropload-load"><span class="loading">加载中...

'
},domNoData : '<div class="dropload-noData">暂无数据
'
},success: function(data){
var result = '';
for(var i = 0; i < data.lists.length; i++){
result += ''
+'<img src="'+data.lists[i].pic+'" alt="">'
+'

'+data.lists[i].title+'

'
+'<span class="date">'+data.lists[i].date+''
+'
';
}
// 为了测试,延迟1秒加载
setTimeout(function(){
$('.lists').html(result);
// 每次数据加载完,必须重置
dropload.resetload();
},type){
alert('Ajax error!');
// 即使加载出错,也得重置
dropload.resetload();
}
});
},loadDownFn : function(me){
$.ajax({
type: 'GET',success: function(data){
var result = '';
for(var i = 0; i < data.lists.length; i++){
result += '<a class="item opacity" href="'+data.lists[i].link+'">'
+'<img src="'+data.lists[i].pic+'" alt="">'
+'

'+data.lists[i].title+'

'
+'<span class="date">'+data.lists[i].date+''
+'';
}
// 为了测试,延迟1秒加载
setTimeout(function(){
$('.lists').append(result);
// 每次数据加载完,必须重置
dropload.resetload();
},type){
alert('Ajax error!');
// 即使加载出错,也得重置
dropload.resetload();
}
});
}
});
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据复制操作的两种方式。‌在聊深浅拷贝之前咱得了解一下js中的两种数据类型:
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:重建二叉树、反向输出链表每个节点 题目 重建二叉树: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 {
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须了解的知识点,现在迎来了ES6+的时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,所以刚好总结一下JavaScript中this指向的问题。
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高