小程序 滑動菜單欄吸頂效果 抖動優化


 

1. 先來看一下未滑動的效果,(樣式隨便寫的,希望盡量簡單)

 

 

 

2.滑動到菜單欄之后的吸頂效果

 

 

 

 3. 我的html布局,小程序我用的是mpvue寫的,使用了scss,可以自行下載demo后改為原生小程序標簽

 

 

吸頂效果的實現思路:

1.獲取菜單欄距離文檔頂部的距離,也就是頭部區域的高度headHeight,使用小程序的api,可以獲得指定節點的高度

2. 監聽頁面滾動距離scrollTop,小程序api, onPageScroll,監聽頁面滾動

3.當scrollTop > headHeight的時候,添加吸頂樣式的class,實現吸頂效果

這樣寫之后,測試了一下,吸頂的時候抖動會比較嚴重

 

優化方案

1. 菜單欄初始定位為相對menu-wrapper 絕對定位,這樣,可以給內容區增加padding-top,padding-top值為菜單欄的高度

2. 內容區用scroll-view包裹,未吸頂之前,禁用當前scroll-view的滾動,吸頂之后,才啟用滾動

加了兩個優化方案之后,吸頂效果抖動沒這么厲害,ios還是會有點點,安卓就很平滑了。

 

需要注意的是,使用小程序的api獲取頭部的高度時,頭部的高度需要明確指定了高度,否則獲取到的高度可能不准。

 

完整代碼,請上github查看,有注釋,推薦點擊鏈接看30秒,哈哈~,https://github.com/daisygogogo/my-demo/blob/master/index.vue


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM