優雅的H5下拉刷新【minirefresh】

来源:http://www.cnblogs.com/dailc/archive/2017/09/02/7466758.html
-Advertisement-
Play Games

序 嚴格的來說,這是我第一個完全投入的開源項目,它的出現是為了統一移動H5中的下拉刷新,想通過一套框架,多主題拓展方式,適應於任意需求下的任意下拉刷新場景。 另外,這個項目作為獨立項目存在,希望能有更多的人參與進來! " " "【minirefresh】優雅的H5下拉刷新。零依賴,高性能,多主題,易 ...


嚴格的來說,這是我第一個完全投入的開源項目,它的出現是為了統一移動H5中的下拉刷新,想通過一套框架,多主題拓展方式,適應於任意需求下的任意下拉刷新場景。

另外,這個項目作為獨立項目存在,希望能有更多的人參與進來!

【minirefresh】優雅的H5下拉刷新。零依賴,高性能,多主題,易拓展。

特點

  • 零依賴(原生JS實現,不依賴於任何庫)

  • 多平臺支持。一套代碼,多端運行,支持Android,iOS,主流瀏覽器

  • 豐富的主題,官方提供多種主題(包括預設,applet-仿小程式,drawer3d-3d抽屜效果,taobao-仿淘寶等)

  • 高性能。動畫採用css3+硬體加速,在主流手機上流暢運行

  • 良好的相容性。支持和各種Scroll的嵌套(包括mui-scroll,IScroll,Swipe等),支持Vue環境下的使用

  • 易拓展,三層架構,專門抽取UI層面,方便實現各種的主題,實現一套主題非常方便,而且幾乎可以實現任何的效果

  • 優雅的API和源碼,API設計科學,簡單,源碼嚴謹,所有源碼通過ESlint檢測

  • 完善的文檔與示例,提供完善的showcase,以及文檔

源碼

https://github.com/minirefresh/minirefresh

https://www.npmjs.com/package/minirefresh

官網與文檔

http://www.minirefresh.com

https://minirefresh.github.io/

效果

基礎示例

1. 【基礎新聞列表】最基本的下拉刷新使用

2. 【多列表單容器】每次切換菜單時刷新容器

3. 【多列表多容器】多個列表都有一個Minirefresh對象

4. 【Vue支持】支持Vue下的使用

嵌套示例

1. 【Mui-Slider】內部嵌套圖片輪播

2. 【Mui-Scroll】嵌套在Mui-Scroll中

3. 【Swipe】嵌套在Swipe中

主題示例

1. 【applet】仿微信小程式主題

2. 【taobao】仿淘寶刷新主題

3. 【drawer3d】3D抽屜效果主題

4. 【drawer-slider】滑動抽屜效果主題

showcase

可以直接線上體驗效果

https://minirefresh.github.io/minirefresh/examples/

快速開始

引入

<link rel="stylesheet" href="xxx/minirefresh.css" />
<script type="text/javascript" src="xxx/minirefresh.js"></script>

或require

var MiniRefreshTools = require('xxx/minirefresh.js');

或import

import { MiniRefreshTools } from 'xxx/minirefresh.js';

頁面佈局

<!-- minirefresh開頭的class請勿修改 -->
<div id="minirefresh" class="minirefresh-wrap">
    <div class="minirefresh-scroll">        
    </div>
</div>

初始化

// 引入任何一個主題後,都會有一個 MiniRefresh 全局變數
var miniRefresh = new MiniRefresh({
    container: '#minirefresh',
    down: {
        callback: function() {
            // 下拉事件
        }
    },
    up: {

        callback: function() {
            // 上拉事件
        }
    }
});

結束刷新

// 結束下拉刷新
miniRefresh.endDownLoading();
// 結束上拉載入
// 參數為true代表沒有更多數據,否則接下來可以繼續載入
miniRefresh.endUpLoading(true);

更多

更多的使用請參考官方文檔

貢獻

minirefresh需要你!

來為項目添磚加瓦,新的Idea,新的主題,重大Bug發現,新的設計資源(如圖標,官網設計等)

都可以通過IssuePR的方式提交!

貢獻被採納後會加入貢獻者名單,如果有傑出貢獻(如持續貢獻),可以加入Manager小組,共同開發維護MiniRefresh

有共同參與項目意願的,可以申請成為Member,成為Minirefresh真正的主人!

更多參考:https://minirefresh.github.io/minirefresh-doc/site/contribute/howtocontributor.html

討論

註意,申請加入群時請添加驗證信息,例如:minirefresh使用遇到問題等等

最後關於靈感與參考

核心架構是參考的我自己以前的項目 https://github.com/dailc/pulltorefresh-h5-iscroll,只不過把依賴IScroll換成了原生JS與CSS3實現,並且完全的重構與優化

做這個項目的靈感與原動力是受 https://github.com/mescroll/mescroll 啟發,但是由於那個項目里的代碼不符合我的個人風格,一些主題拓展也沒有達到我的要求,因此我自己重新寫了一個項目而不是基於mescroll拓展

還有就是寫這個項目也是對自己的一種鍛煉,裡面包含了

  • JS與CSS3的熟練運用,併進行合理架構
  • ESlint嚴格的代碼檢測
  • Gulp 自動構建
  • Karma+Mocha單元測試(待完善)
  • Circleci,Codecov,Sauce等自動集成與測試網址,
  • Gitbook構建API與教程文檔
  • Hexo構建官方網站(待完善)
  • 功能變數名稱備案,CDN加速等(待完善)
  • Npm發佈與Github項目團隊

當然了,迫於一些原因,沒有用全新的ES6或TS寫,而是用的ES5嚴格模式。

另外,這個項目是托管在Githubminirefresh組織上的,希望有更多的人能參與,成為組織的一員,共同維護,畢竟在不斷的分享交流中才能進步更快...


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.抽象產品類 2.抽象工廠類 3.具體產品類 4.具體工廠類 5.客戶程式 6.應用 ...
  • 三 目運算:如var a = 10; var b= 12; c = a>b ?a:b; 若成立執行a否則執行b var isHide = true; 若用if判斷語句如下 if(isHide) { box.style.display = "block"; } else { box.style.dis ...
  • Name: Email: 定義和用法 name 屬性規定 input 元素的名稱。 name 屬性用於對提交到伺服器後的表單數據進行標識,或者在客戶端通過 JavaScript 引用表單數據。 註釋:只有設置了 name 屬性的表單元素才能在提交表單時傳遞它們的值 如上面的例子:在後端他有個對象存在... ...
  • fetch方法要想於後臺專遞cookie必須添加屬性 註意:這個屬性不是設置在headers里的 後臺也必須設置一個header來配合 ...
  • 1 在使用easyui之前必須要導入壓縮好的完整的easy-ui的js包。 2 其次要在html頁面中引入 具體操作如下: Basic Panel - jQuery EasyUI Demo 3 準備數據,把要表示成為table的對象在資料庫中建立一個表。最好是資料庫中的列的名稱與對象屬性同名。 這樣... ...
  • 前言:這是筆者學習之後自己的理解與整理。如果有錯誤或者疑問的地方,請大家指正,我會持續更新! DOM變動事件 變動事件(MutationEvent)能在DOM中的某一部分發生變化時給出提示,這類事件非常有用,但都只能使用 DOM2 級事件處理程式,且由於瀏覽器相容性不好,所以用的不廣泛; 刪除節點變 ...
  • gdom框架是我開發的一款dom和字元串處理框架,目前版本是1.0.0. 使用方法跟jquery是差不多的, 會用jquery就會用gdom,目前 1.0.0版本的選擇器完全支持CSS3選擇器.沒有做IE的低版本相容。 gdom下載地址:https://github.com/ghostwu/gdom ...
  • 1.打開工具--插件開發--新建代碼片段 會出現下圖: 2.在<![CDATA[和]]>內寫下你要的代碼片段,註意的是代碼片段要靠最左邊。 3.設置快捷鍵,把下麵tabTrigger標簽的註釋打開,中間的h就是你的快捷鍵。 4.Ctrl+s保存。名字隨便起,但是尾碼名必須是.sublime-snip ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...