npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

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项目单组件引用请看这里

  1. 原生js, 支持vue, 不依赖jquery,zepto

  2. 一套代码多端运行. 完美运行于android,iOS,手机浏览器,兼容PC主流浏览器

  3. 参数自由搭配, 随心定制, 轻松拓展

  4. 主流APP案例, 丰富经典

  5. 免费商用

  6. mescroll交流群

目录:

  • 最新版本:1.3.2 (2018-01-01) 重要升级
  • 功能亮点
  • 快速入门
  • vue的示例
  • mescroll.m.js和mescroll.min.js
  • 基础案例 base demos
  • 中级案例 intermediate demos
  • 高级案例 senior demos
  • 下载基础中级案例
  • 获取高级案例
  • API文档
  • 常用方法
  • 其他方法
  • 常见问题
  • 打赏排行榜

功能亮点 :

  1. 自动判断和提示列表无任何数据或无更多数据

  2. 支持监听列表滚动事件,无需手动判断处理列表的页码,时间等变量

  3. 可指定列表滚动到任何位置,附带平滑效果一键滚动到顶部或底部

  4. 可配置列表数据不满屏时,自动加载下一页

  5. 一个界面可支持多个下拉刷新,上拉加载

  6. 可临时锁定下拉刷新和上拉加载

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的下拉刷新上拉加载

下载基础中级案例源码 :

获取高级案例源码 :