Git Product home page Git Product logo

dailc / pulltorefresh-h5-iscroll Goto Github PK

View Code? Open in Web Editor NEW
54.0 5.0 16.0 1.67 MB

基于IScroll5的PullToRefresh实现.。提供多套皮肤机制,便于拓展!

Home Page: https://dailc.github.io/pulltorefresh-h5-iscroll/examples/html

License: MIT License

JavaScript 94.55% CSS 5.45%
pulltorefresh javascript iscroll5-pull-to-refresh iscroll-pull-to-refresh iscroll pull-to-refresh pull-down-refresh

pulltorefresh-h5-iscroll's Introduction

H5下拉刷新皮肤系列

基于IScroll的全套下拉刷新皮肤。各式各样的皮肤。以及下拉刷新实现基类供自定义UI实现。

Notice

这个老版本的已经不再维护了,后续维护新版下拉刷新

地址:

https://github.com/minirefresh/minirefresh

特点:

零依赖(原生JS实现,不依赖于任何库)

多主题,官方提供多种主题(包括默认,applet-仿小程序,drawer3d-3d抽屉效果,taobao-仿淘宝等)

易拓展,三层架构,专门抽取UI层面,方便实现各种的主题,实现一套主题非常方便,并且几乎可以实现任何效果

高性能,良好的兼容性。动画采用css3+硬件加速,在大部分手机上都非常流畅,支持和各种Scroll的嵌套(包括mui scroll,IScroll,Swipe等),支持Vue

优雅的API和源码,API设计科学,简单,源码严谨,所有源码通过ESlint检测,并提供完善的showcase和文档

另外,Npm上也有相应发布。

Effect(效果)

How To Use(使用)

  • Require(引入脚本)

     <script type="text/javascript" src="../../../dist/pulltorefresh.skin.default.js"></script>
    

    可以将skin.default替换为对应的皮肤

  • HTML Structure(页面结构)

     <div class="×××-scroll-wrapper">
         <div class="×××-scroll">
             ...
         </div>
     </div>
    

    譬如,如果基于mui的,就可以是mui-scroller-wrapper,其它的自己定义对应scroll样式即可

  • JS Initialization(JS初始化)

     var pullToRefreshObj = new PullToRefreshTools.skin.default({
         // 这里用默认设置
         container: '#pullrefresh',
         // down为null表示不要下拉刷新    
         down: {
             callback: pullDownRefreshCallback,
             // 是否显示成功动画
             isSuccessTips: true,
         },
         // up为null为不要上拉
         // 上拉有关
         up: {
             // 是否自动上拉加载-初始化是是否自动
             auto: true,
     
             callback: pullUpRefreshCallback
         },
         scroll: {
             bounceTime: 500,
             // 回弹动画时间
             // 下拉刷新和上拉加载成功动画的时间
             successAnimationTime: 500
         },
     });
    

    具体可以将PullToRefreshTools.skin.default换为其它皮肤,其它更多操作参考示例

  • API(暴露出来的方法)

     * finished //这是一个属性,用来控制当前上拉加载是否可用
     * refresh() //重置状态。譬如上拉加载关闭后需要手动refresh重置finished状态
     * pulldownLoading() //主动触发一个下拉刷新的动画(同时会触发下拉回调)
     * pullupLoading() //主动触发一个上拉加载的动画(同时会触发上拉回调)
     * endPullDownToRefresh() //关闭下拉刷新动画,重置状态
     * endPullUpToRefresh(finished) //关闭上拉加载动画,重置状态,如果finished,则不允许在上拉,除非再次refresh()
    

    关于更多的使用说明(如自定义UI类的实现,请参考最后的更多说明)

  • (Notice)注意

    • default皮肤和type1皮肤依赖于mui.css
    • 其它皮肤依赖于样式文件pulltorefresh.skin.css
    • 另外,也支持require方式引入,require后,请通过全局变量方式来使用,如PullToRefresh.skin.defaults
  • (Global Variable)相应的全局变量与JS文件

     IScroll // 内部的IScroll5保留的全局变量
     PullToRefreshTools.core // pulltorefresh.core.js,可以通过这个文件实现自定义皮肤
     PullToRefreshTools.skin.defaults // pulltorefresh.skin.default.js 需要和关键字区分
     PullToRefreshTools.skin.type1 // pulltorefresh.skin.type1.js
     PullToRefreshTools.skin.type2 // pulltorefresh.skin.type2.js
     PullToRefreshTools.skin.type3 // pulltorefresh.skin.type3.js
     PullToRefreshTools.skin.type4 // pulltorefresh.skin.type4.js
     PullToRefreshTools.skin.natives	// pulltorefresh.skin.native.js 需要和保留字区分
     PullToRefreshTools.bizlogic	// pulltorefresh.bizlogic.implxx.js 系列,依赖于核心下拉刷新文件(随便一个皮肤即可)
    

关于

下拉刷新所有皮肤内部都默认引入了IScroll5 但是进行了一些轻微改动(主要是增加了功能,用来方便下拉刷新的实现,并不影响原本使用) 因此如果项目中其它地方有用到IScroll5,无需在引入,直接通过IScroll即可使用

后续会定期更新皮肤

更多说明

相关博文

更新日志

  • 20170410
    • 版本1.0.0
    • 增加cmd引入支持
    • 修复IScroll内部maxScrollY引起的冲突
  • 20170518
    • 修复关闭上拉加载后,重复下拉刷新报错的bug
  • 20170526
    • 版本2.0.0
    • 从源码层面重新修改命名空间
    • 后续命名层面不会再有大的改动
  • 20170601
    • 内部源码优化
    • 不影响以前的使用
  • 20170608
    • 修改项目名称,同步修改示例资源路径
  • 20170609
    • 源码目录结构微调,不影响使用
  • 20170612
    • showcase将targetPullToRefresh简化为skin
  • 20170615
    • 版本3.0.0
    • API设计简化
    • 去除不推荐使用的mui皮肤
    • IScroll打包到内部
  • 20170621
    • 更新native皮肤引入时的bug-由于重复打包core,导致命名冲突
  • 20170626
    • 下拉刷新内部优化,调用方式默认变为new的使用方式
  • 20170711
    • 下拉刷新bizlogic的重构,优化代码
  • 20170814
    • 新增type5皮肤,仿照微信小程序的下拉效果
  • 20170830
    • 这个库已经不再维护,全力维护更好的下拉刷新minirefresh

License (MIT)

pulltorefresh-h5-iscroll's People

Contributors

dailc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pulltorefresh-h5-iscroll's Issues

关闭下拉刷新时,重复刷新报错

文件:demo_pullRefresh_skin_default.html
js: window.onload = function() {
demoPullToRefresh.init(PullToRefreshSkinDefault,false,true);
};
开启下拉刷新时没有问题,关闭时连续刷新报错
image

Notice: 新的下拉刷新

https://github.com/minirefresh/minirefresh

这个老版本的已经不再维护了,后续维护新版下拉刷新,特点:

  • 零依赖(原生JS实现,不依赖于任何库)

  • 多主题,官方提供多种主题(包括默认,applet-仿小程序,drawer3d-3d抽屉效果,taobao-仿淘宝等)

  • 易拓展,三层架构,专门抽取UI层面,方便实现各种的主题,实现一套主题非常方便,并且几乎可以实现任何效果

  • 高性能,良好的兼容性。动画采用css3+硬件加速,在大部分手机上都非常流畅,支持和各种Scroll的嵌套(包括mui scroll,IScroll,Swipe等),支持Vue

  • 优雅的API和源码,API设计科学,简单,源码严谨,所有源码通过ESlint检测,并提供完善的showcase和文档

另外,Npm上也有相应发布。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.