移动端下拉刷新、上拉加载更多 Zepto/jQuery插件

所属分类:UI-滚动,加载

 275637  392  查看评论 (125)
移动端下拉刷新、上拉加载更多 Zepto/jQuery插件 ie兼容10

依赖 (dependence)

Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用) 

Zepto or jQuery 1.7+,recommend to use jQuery 2.x(not use them at the same time)

使用方法 (usage)

引用css和js 

(basic)

<link rel="stylesheet" href="../dist/dropload.css">
<script src="../dist/dropload.min.js"></script>
$('.element').dropload({
    scrollArea : window,
    loadDownFn : function(me){
        $.ajax({
            type: 'GET',
            url: 'json/more.json',
            dataType: 'json',
            success: function(data){
                alert(data);
                // 每次数据加载完,必须重置
                me.resetload();
            },
            error: function(xhr, type){
                alert('Ajax error!');
                // 即使加载出错,也得重置
                me.resetload();
            }
        });
    }
});

(注明:所有示例里ajax和setTimeout都是为了模拟加载效果而写的,与本插件无直接关系。ajax建议自己写,无特殊情况不必copy我的ajax写法,因为写得太烂。如需下载本地运行,请在本机装服务器环境,否则ajax会报错。)

参数列表 (options)

参数说明默认值可填值
scrollArea滑动区域绑定元素自身window
domUp上方DOM{
domClass : 'dropload-up',
domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>',
domUpdate  : '<div class="dropload-update">↑释放更新</div>',
domLoad : '<div class="dropload-load">○加载中...</div>'
}
数组
domDown下方DOM{
domClass : 'dropload-down',
domRefresh : '<div class="dropload-refresh">↑上拉加载更多</div>',
domLoad : '<div class="dropload-load">○加载中...</div>',
domNoData : '<div class="dropload-noData">暂无数据</div>'
}
数组
autoLoad自动加载truetrue和false
distance拉动距离50数字
threshold提前加载距离加载区高度2/3正整数
loadUpFn上方functionfunction(me){
//你的代码
me.resetload();
}
loadDownFn下方functionfunction(me){
//你的代码
me.resetload();
}

API

暴露一些功能,可以让dropload更灵活的使用

lock() 锁定dropload

参数说明
lock()智能锁定,锁定上一次加载的方向
lock('up')锁定上方
lock('down')锁定下方

unlock() 解锁dropload

noData() 无数据

参数说明
noData()无数据
noData(true)无数据
noData(false)有数据

resetload() 重置。每次数据加载完,必须重置

dropReload() 手动加载

已知问题

由于部分Android中UC和QQ浏览器头部有地址栏,并且一开始滑动页面隐藏地址栏时,无法触发scroll和resize,所以会导致部分情况无法使用。解决方案1:增加distance距离,例如DEMO2中distance:50;解决方案2:加meta使之全屏显示

<meta name="full-screen" content="yes">
<meta name="x5-fullscreen" content="true">


相关插件-滚动,加载

jQuery全屏视差滚动效果

jQuery全屏视差滚动效果
  滚动
 15519  110

jQuery鼠标滚屏锚点定位

利用mousewheel库实现滚屏事件,同时支持侧边栏控制
  滚动
 2850  42

HTML5单页面全屏滚动特效

全屏滚动代码简单,非常适合新手。
  滚动
 18377  123

jQuery简单的文字跑马灯特效

这是一款非常简单的jQuery文字跑马灯特效插件。该跑马灯特效使文本从右向左不停循环,当鼠标放到跑马灯上的文字时,跑马灯会暂停运动。
  滚动
 104519  75

讨论这个项目(125)回答他人问题或分享插件使用方法奖励jQ币

    web大帅锅 0
    2018/6/7 19:52:44
    为什么当我的滚动条滑动到底部后就一直在加载新数据中,一口气加载完了

    回复
    好先森 0
    2018/6/7 16:32:37
    0
    2018/5/28 17:11:35
    点击事件。把加载的元素隐藏了以后,empty或者display:none。。就不能继续加载了 回复
    糖果 0
    2018/5/26 16:27:18
    为什么上拉加载内容以后,点击生成内容会console两个出来呢。 回复
    ☆开始,两个人生活☆ 0
    2018/5/24 14:57:50
    为什么会报load
    Uncaught TypeError: $(...).load is not a function的错误 回复
    如果心情是音乐 0
    2018/5/4 15:02:15
    那些提示如何放在底部? 怎么弄都在上方?怎么弄・・・・ 回复
    向日葵、 0
    2018/5/3 21:37:23
    已经引入插件了,我将load写在一个函数里,调用这个函数的时候就一直报错,load is not a function,有遇到过这个问题的吗 回复
    依然乌托邦 0
    2018/4/8 17:15:42
    我的页面有底部,上滑加载下拉刷新就不好使,但是我把底部去掉这个插件就没问题,是因为什么? 回复
    君君 0
    2018/3/29 10:43:16
    作者大大 请问手动加载要怎么做 回复
    ?? 何づ小理?? 0
    2018/3/28 11:49:19
    为什么第一次进来会加载两次数据
        Trouble is a friend0
        2018/4/9 12:53:27
        请问 你解决了吗
        ?没有口袋的哆啦A梦0
        2018/4/25 16:33:15
        试一下阻止自动加载
    回复
取消回复