vue-mescroll
v0.0.4
Published
精致的下拉刷新和上拉加载 js框架.支持vue,完美运行于移动端和主流PC浏览器 ( a great JS framework for pull-refresh and pull-up-loading )
Downloads
14
Readme
mescroll
mescroll -- 精致的下拉刷新和上拉加载js框架 (JS framework for pull-refresh and pull-up-loading)
http://www.mescroll.com
Vue项目单组件引用请看这里
原生js, 支持vue, 不依赖jquery,zepto
一套代码多端运行. 完美运行于android,iOS,手机浏览器,兼容PC主流浏览器
参数自由搭配, 随心定制, 轻松拓展
主流APP案例, 丰富经典
免费商用
mescroll交流群
目录:
- 最新版本:1.3.2 (2018-01-01) 重要升级
- 功能亮点
- 快速入门
- vue的示例
- mescroll.m.js和mescroll.min.js
- 基础案例 base demos
- 中级案例 intermediate demos
- 高级案例 senior demos
- 下载基础中级案例
- 获取高级案例
- API文档
- 常用方法
- 其他方法
- 常见问题
- 打赏排行榜
功能亮点 :
自动判断和提示列表无任何数据或无更多数据
支持监听列表滚动事件,无需手动判断处理列表的页码,时间等变量
可指定列表滚动到任何位置,附带平滑效果一键滚动到顶部或底部
可配置列表数据不满屏时,自动加载下一页
一个界面可支持多个下拉刷新,上拉加载
可临时锁定下拉刷新和上拉加载
NPM
特别感谢 @channg 帮忙整理发布NPM
https://www.npmjs.com/package/mescroll.js NPM 安装命令:
npm install mescroll.js
Vue单组件
npm install vue-mescroll
快速入门 :
JS 版本引用
1. 引用 mescroll.min.css , mescroll.min.js
2. 拷贝以下布局结构:
<div id="mescroll" class="mescroll"> //id可以改,而"mescroll"的class不能删
//列表内容,如:<ul>列表数据</ul> ...
</div>
3. 创建MeScroll对象:
var mescroll = new MeScroll("mescroll", { //第一个参数"mescroll"对应上面布局结构div的id
down: {
callback: downCallback //下拉刷新的回调,别写成downCallback(),多了括号就自动执行方法了
},
up: {
callback: upCallback //上拉加载回调,简写callback:function(page){upCallback(page);}
}
});
Vue单组件版本引用
1.
import Mescroll from 'vue-mescroll/mescroll'
2. 布局结构:
<me-scroll
ref="mescroll"
:id="mescroll" //id默认为 mescroll
:opt-up="{}" //up 参数配置(isBounce 默认未false)
:opt-down="{}" //down 参数配置
:callback="() => {}" //统一回调(up、down均使用此回调)
:up-callback="() => {}" //up 回调
:down-callback="() => {}"> //down 回调
//列表内容,如:<ul>列表数据</ul> ...
</me-scroll>
3. 获取MeScroll对象实例(ref 可用):
this.$refs.mescroll.instance
温馨提示:
1. 如果您的下拉刷新是重置列表数据,那么down完全可以不用配置,具体用法参考第一个基础案例
解析: down内部默认调用的是mescroll.resetUpScroll(),而resetUpScroll会将page.num=1,再触发up.callback,从而实现刷新列表数据
2. 如果您的项目是在iOS的微信,QQ,Safari等浏览器访问的,则建议配置up的isBounce为false,禁止ios的回弹效果; 解析(必读)
4. 处理回调:
//下拉刷新的回调
function downCallback(){
$.ajax({
url: 'xxxxxx',
success: function(data){
//联网成功的回调,隐藏下拉刷新的状态;
mescroll.endSuccess();//无参
//设置数据
//setXxxx(data);//自行实现 TODO
},
error: function(data){
//联网失败的回调,隐藏下拉刷新的状态
mescroll.endErr();
}
});
}
//上拉加载的回调 page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数
function upCallback(page){
$.ajax({
url: 'xxxxxx?num='+ page.num +"&size="+ page.size,
success: function(curPageData){
//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
//方法一(推荐): 后台接口有返回列表的总页数 totalPage
//必传参数(当前页的数据个数, 总页数)
//mescroll.endByPage(curPageData.length, totalPage);
//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
//必传参数(当前页的数据个数, 总数据量)
//mescroll.endBySize(curPageData.length, totalSize);
//方法三(推荐): 您有其他方式知道是否有下一页 hasNext
//必传参数(当前页的数据个数, 是否有下一页true/false)
//mescroll.endSuccess(curPageData.length, hasNext);
//方法四 (不推荐),会存在一个小问题:比如列表共有20条数据,每页加载10条,共2页.
//如果只根据当前页的数据个数判断,则需翻到第三页才会知道无更多数据
//如果传了hasNext,则翻到第二页即可显示无更多数据.
//mescroll.endSuccess(curPageData.length);
//设置列表数据
//setListData(curPageData);//自行实现 TODO
},
error: function(){
//联网失败的回调,隐藏下拉刷新和上拉加载的状态
mescroll.endErr();
}
});
}
--- upCallback推荐的三个方法mescroll.endByPage(), mescroll.endBySize(), mescroll.endSuccess()是mescroll 1.2.1新增的, 请检查更新~ 1.2.1还更新了许多内容哦,点此查看~ 请保持star,这阵子都会有新功能加入~
--- mescroll在vue中的使用案例---------- 点此在线体验 ---------- 点此查看源码 ----------
--- 以上为mescroll最基本的用法,强烈建议您下载并查看 mescroll基础案例 , 发现mescroll更强大的功能 ~ --- 基础案例一共6个, 每个案例3分钟, 一共花您18分钟; 这18分钟您将了解mescroll在不同情况下应如何快速配置 ~ --- 磨刀不误砍柴工,心急吃不了热豆腐. 请静下心来体验与理解mescroll, 一定会让您事半功倍 ~ --- 如使用中有疑问, 请先查看 常见问题专区 ~
mescroll.m.js和mescroll.min.js
您如果在vue,angular等环境中,因作用域的问题未能正常引入或初始化Mescroll对象,则引用mescroll.m.js; mescroll.m.js只是去掉了mescroll.min.js套的一层模块规范的代码:
;(function(name,definition){
//检测上下文环境是否为AMD或CMD
var hasDefine = typeof define === 'function',
// 检测上下文环境是否为Node
hasExports = typeof module !== 'function' && module.exports;
if(hasDefine){
//AMD环境或CMD环境
define(definition);
}else if(hasExports){
//定义为普通Node模块
module.exports = definition();
}else{
//将模块的执行结果挂在window变量中,在浏览器中this指向window对象
this[name] = definition();
}
})('Mescroll',function(){
var Mescroll = function(){}
return Mescroll
})
mescroll.m.js因为没有闭包限制作用域,所以能解决某些情况下引用mescroll.min.js报'Mescroll' undefined的问题
具体请参考 https://github.com/mescroll/mescroll/issues/56
API文档 :
前往官网查看 >>
//创建mescroll对象
var mescroll = new MeScroll("mescroll", { down: {下拉刷新的配置参数}, up: {上拉加载的配置参数} });
常用方法 :
前往官网查看 >>
其他方法 :
前往官网查看 >>
基础案例 base demos :
前往官网查看 >>
1. 【商品列表】演示下拉刷新重置列表数据
---------- 在线体验 ---------- 查看源码 ----------
2. 【新闻列表】演示下拉刷新添加新数据到列表顶部
---------- 在线体验 ---------- 查看源码 ----------
3. 【单mescroll】演示每次切换菜单都重置列表,不缓存数据
---------- 在线体验 ---------- 查看源码 ----------
4. 【多mescroll】演示每个菜单列表仅初始化一次,切换菜单缓存数据
---------- 在线体验 ---------- 查看源码 ----------
5. 【满屏加载与锁定滑动】演示自动满屏加载,可临时锁定上拉刷新和下拉加载
---------- 在线体验 ---------- 查看源码 ----------
6. 【mescroll所有配置项】源码展示mescroll所有配置项, 快速理解与调试mescroll
---------- 在线体验 ---------- 查看源码 ----------
中级案例 intermediate demos :
前往官网查看 >>
1. 【知乎 v3.53.0】APP的下拉刷新上拉加载
---------- 在线体验 ---------- 查看源码 ----------
2. 【新浪微博 v7.6.1】APP的下拉刷新上拉加载
---------- 在线体验 ---------- 查看源码 ----------
3. 【贝贝 v6.0.0】APP的下拉刷新上拉加载
---------- 在线体验 ---------- 查看源码 ----------
4. 【雅布力 v2.4.0】APP的下拉刷新上拉加载
---------- 在线体验 ---------- 查看源码 ----------
5. 【吸顶悬浮效果】
---------- 在线体验 ---------- 查看源码 ----------
6. 【关键词搜索】
---------- 在线体验 ---------- 查看源码 ----------
7. 【轮播切换效果】
---------- 在线体验 ---------- 查看源码 ----------
8. 【轮播导航菜单】
---------- 在线体验 ---------- 查看源码 ----------
高级案例 senior demos :
前往官网查看 >>
1. 【淘宝 v6.8.0】APP的下拉刷新上拉加载
2. 【京东 v6.1.0】APP的下拉刷新上拉加载
3. 【美团 v8.2.3】APP的下拉刷新上拉加载
4. 【美囤妈妈 v2.0.5】APP的下拉刷新上拉加载