1.掃碼快速體驗(使用手機瀏覽器開啟)
2.安裝與執行
npm install
npm run dev
複製程式碼
3.專案打包
npm run build
複製程式碼
4.演示部分介面截圖(4種,其他外掛效果安裝體驗)
5.外掛比較
scroll view 8款外掛比較 | ||
外掛名稱 | GitHub | 說明 |
vux | https://github.com/airyland/vux | 基於 vue 與 weui 移動端元件庫,但該 scroller 元件官方稱已經不再維護,建議使用第三方外掛。優點:無論 Android 還是 iOS,scroll view 都可以產生回彈效果,缺點:滑動卡頓、不自然,侷限於 vux 框架之中 |
better-scroll | https://github.com/ustbhuangyi/better-scroll | 算是 GitHub 上 star 最多的外掛了,很多專案在使用,詳細介紹見官網。優點:作者更新頻繁,非常上心(上次我凌晨2點多提了個issue,十分鐘之後就回復了),使用者較多,功能也非常豐富,具有有回彈效果,純文字列表滑動也比較自然。缺點:官方文件較為簡陋(僅僅是一些引數的介紹),基於vue的demo對初學者來說難度稍大,圖文列表滑動不太自然,且載入的資料越多越為明顯,尤其是在低端安卓機或iPhone5/6上滑動過程中會跳躍式的回閃 |
vue-scroller | https://github.com/wangdahoo/vue-scroller | 基於 Vue 的 滑動外掛,支援下拉重新整理和上拉載入,支援自定義下拉重新整理/上拉載入/無資料 dom 等。優點:具有有回彈效果,使用簡單,官方demo齊,上手較為簡單。缺點:圖文列表,當資料載入到一定程度後會比較卡頓;使用上僅限於vue |
mescroll | https://github.com/mescroll/mescroll | 精緻的下拉重新整理和上拉載入 js框架.支援vue,完美執行於移動端和主流PC瀏覽器,定製化非常高,預設UI很精緻。優點:文件齊全,官方例子非常多,非常容易使用,具有回到頂部等貼心功能。缺點:無回彈效果,在iOS上使用下拉重新整理會與iOS瀏覽器預設回彈效果衝突 |
vue-infinite-scroll | https://github.com/ElemeFE/vue-infinite-scroll | 餓了麼出品,封裝成 vue 指令,程式碼簡潔,但是功能較為簡單。優點:可對原始碼進行定製化開發。缺點:功能非常簡單,僅支援無限載入,且不能定製化dom |
vue-infinite-loading | https://github.com/PeachScript/vue-infinite-loading | 功能和 vue-infinite-scroll 類似,僅支援無限載入,但是以元件方式進行封裝。優點:程式碼簡明易懂,有官方示例,文件齊全,支援橫向scroll。缺點:功能簡單,不支援下拉重新整理,僅限於vue |
VueMugenScroll | https://github.com/egoist/vue-mugen-scroll | 一款無限載入外掛,使用上也比較簡單。優點:引數較少,新手比較容易上手。缺點:功能單一,不支援下拉重新整理,僅限於vue |
Scrollload | https://github.com/fa-ge/Scrollload | 一款下拉重新整理,上拉載入的移動端外掛,無任何依賴,對iOS區域性滾動的坑進行了較為全面的分析。優點:示例豐富,對iOS回彈效果和專案回彈效果的衝突提出了較為全面的解決方案。缺點:對vue的支援不是很友好,解決區域性滾動問題會依賴於其他庫 |
6.總結
-
1.scroll view 外掛非常多,但實現方式無非是兩種
- 1-1.自己使用 css3 transform 來實現滾動動畫,可以很好的實現回彈效果,但很難掌控,所以會造成滑動不自然,上述外掛vux、better-scroll、vue-scroller都是使用的該方案
- 1-2.使用原生div效果(overflow-y:auto)來實現滑動,滑動效果會較為自然,但安卓上無回彈效果,且滑動事件易於iOS預設滑動事件衝突,上述外掛其餘5種使用的該方案。
-
2.better-scroll 官方demo相對新手來說較為複雜,vue-scroll-mobile-demo 中對 better-scroll 進行了使用上的封裝(基於vue)
-
3.mescroll 在 vue 中使用存在一些弊端(如元件在deactivated時未登出滑動事件,在deactivated時未銷燬回到頂部圖片),vue-scroll-mobile-demo 對 mescroll 的原始碼進行了相應的完善。
-
4.個人觀點:專案中 scroll view 為文字列表且滾動載入資料較少時,可使用 better-scroll,畢竟滴滴也在用,使用者很多。專案中 scroll view 為圖文列表時,且需要無限載入資料時使用 mescroll,可參照官方示例。