最近工作遇到关于小程序菜单栏吸顶的需求(例如某页面中间有个tabbar,要求当用户滑动该页面使tabbar到达屏幕顶部时,tabbar吸顶,页面滑动回来使tabbar回到原来的位置)
查了小程序的文档,没找到相关的功能介绍,但是找到了页面滚动监听事件 onPageScroll (e) { }
我们捋一下思路,要实现吸顶,只要获取到页面已经滚动的高度A,以及tabbar到页面顶部的高度B,如果A大于等于B,则让tabbar吸顶

1、滚动监听事件提供了参数e,e.scrollTop即可拿到页面已经滚动的高度,即页面顶部到屏幕顶部的距离A
2、tabbar到页面顶部之间的组件高度相加即可得到tabbar到页面顶部的高度B,这里需要用到小程序节点的选取

res.height即可拿到所选取的组件的高度
3、if(e.scrollTop >= this.data.height) {

本文介绍了如何在小程序中实现菜单栏吸顶效果。通过监听页面滚动事件`onPageScroll`,结合页面滚动高度与tabbar到页面顶部的高度比较,实现tabbar在特定条件下的吸顶效果。同时,通过优化措施,如设置变量避免频繁更新样式,减少页面卡顿和抖动,以及使用外边距缓解tabbar脱离文档流造成的页面变化。
3919

被折叠的 条评论
为什么被折叠?



