scroll-view实现滚动和锚点必须设置高度,但是页面高度没有确定的情况,这种方法就没有办法实现功能,针对这种情况找到一种方法实现锚点定位就很重要了,查找相关内容,使用的方法都为scroll-view方式,不够灵活。本方法可以实现模块高度任意变化,不需要再次改变代码
实现这一功能分为两个部分,分别是滚动到页面对应位置选择对应的nav标签和点击标签滚动到对应位置。
(1)滚动到对应位置选中对应的标签,具体实现如下:
onPageScroll: function(e) {
const scrolltop = e.scrolltop;
const _this = this;
//可以获取某个id到顶部的距离
const query = wx.createSelectorQuery()
query.select('#first').boundingClientRect()
query.select('#second').boundingClientRect()
query.select('#third').boundingClientRect()
query.selectViewport().scrollOffset()
query.exec(function(res) {
if (res[0].top <= 0) {
_this.setData({
navShow: true
})
} else {
_this.setData({
navShow: false
})
}
//判断选择的位置
if (res[1].top > 0) {
_this.setData({
navChange: 1
})
} else
if (res[0].top <= 0 && res[1].top > 0) {
_this.setData({
navChange: 1
})
} else if (res[1].top <= 0 && res[2].top > 0) {
_this.setData({