小程序做一個能夠左右滑動切換的多tab頁面
阿新 • • 發佈:2019-04-27
http 代碼 bar 操作 不能 但是 chang hub 順序
主要原理:使用
<swiper>
和<scroll-view>
組件
代碼片段: https://developers.weixin.qq.com/s/mLx4FWmF757Z
GitHub: github.com/WozHuang/Miniprogram-Demo
小程序是輕量級的app,本應小巧精悍、用完即走,但是很多企業還是想要在這輛自行車上裝發動機,要求擁有原生APP的操作體驗。作為一介碼農也只能默默想辦法實現了,總不能說這東西我不想做吧
有興趣可以在Github看看另外幾個需求實現
效果圖
這次要實現的是在APP中常見的多TAB滑動切換功能,沒有什麽可介紹的,直接上成果圖:
本來如果在web端上實現,直接去找現成的輪子使用就可以了(避免重復造輪子,而且我造的輪子也不見得有別人的好)
奈何小程序與web還有些區別,現成的輪子都用不上,還是只能自己動手造一個了。幸運的是小程序自帶的部分組件也能用得上,不用從頭開始造。
組件結構
<page> <bar /> // 頂部的tab選擇器 <swiper> // 能夠左右滑動的swiper組件 <list> // 某一個tab的列表 <item /> // 數據項 ... </list> ... </swiper> </page>
組件結構也並不復雜,這樣層層嵌套只是為了保證組件各司其職、利於維護
所利用的屬性:
- swiper
- 可以左右滑動
- 通過current屬性切換到指定的項
- 監聽手動滑動的change事件
- scroll-view
- 用 scroll-into-view 屬性滑動到指定的位置
- scroll-with-animation="{{true}}" 平滑滾動
- duration="{{200}}" 屬性指定動畫時長
存在的不足
- 從第一項切換到第三項時swiper會 1 -> 2 -> 3 的順序切換,似乎沒有直接切換的辦法(設置swiper的duration屬性為0可以瞬間切換,但是滑動的效果會變得奇怪)
- 切換動畫偶爾會掉幀,原因未知,優化方式未知
小程序做一個能夠左右滑動切換的多tab頁面