用scroll-view向上或向下监听滚动到某一个位置,然后用this.setData让scrollTop变成true或false,使某一块fixed定位到页面顶部,我直接在页面上显示scrollTop的值,很慢才显示出来。这样导致fixed布局的那个块也定位很慢,用户体验非常差。PS:我尝试用showToast输出,速度非常快,证明方法是没问题的,有问题的是setData赋值很慢。
- 页面渲染时候获取nav块距离顶部的高度
wx.createSelectorQuery().select(’#nav’).boundingClientRect(function (rect) {
console.log(rect)
_this.setData({
top: rect.top
})
}).exec()
- bindscroll方法监听向下滚动位置
if (e.detail.scrollTop >= this.data.top) {
this.setData({
scrollTop: true
})
} else {
return;
}
- bindscrolltoupper监听向上滚动是否到nav块的位置
scrolltoupper: function (e) {
this.setData({
scrollTop: false
})
},
ps: scrollTop用来控制nav块定位到页面顶部