小程序实现锚点定位商品详情页

wxml:

< view class= "tab-item {{top<block_2ScrollTop-60?'active':''}}" bindtap= "toblock1">商品 </ view >
< view class= "tab-item {{top>=block_2ScrollTop-60&&top<block_3ScrollTop-60?'active':''}}" bindtap= "toblock2">评分 </ view >
< view class= "tab-item {{top>=block_3ScrollTop-60?'active':''}}" bindtap= "toblock3">详情 </ view >
 

 

 

< scroll-view style= 'height:{{winHeight}}' scroll-y= "true" class= "scoll-h" >
< block >
< view id= 'block_1' >
 
                </ view >
</ block >
< block >
< view id= 'block_2' >
 
</ view >
</ block >
< block >
< view id= 'block_3' >
 
</ view >
</ block >
</ scroll-view >
 
 
js:
var that = this;
// 高度自适应
wx.getSystemInfo({
success: function (res) {
var clientHeight = res.windowHeight,
clientWidth = res.windowWidth,
rpxR = 750 / clientWidth;
var calc = clientHeight * rpxR - 180;
that.setData({
winHeight: calc
});
}
});
    var query = wx.createSelectorQuery()
 
query.select( '#tab-con').boundingClientRect( function (res) {
that.setData({
tabScrollTop: res.top- 60
})
}).exec()
query.select( '#block_1').boundingClientRect( function (res) {
that.setData({
block_1ScrollTop: res.top
})
}).exec()
query.select( '#block_2').boundingClientRect( function (res) {
that.setData({
block_2ScrollTop: res.top
})
}).exec()
query.select( '#block_3').boundingClientRect( function (res) {
that.setData({
block_3ScrollTop: res.top
})
console.log(res.top)
}).exec()

 

    
onPageScroll: function (e) { // 获取滚动条当前位置
console.log(e)
this.setData({
top: e.scrollTop
})
if (e.scrollTop > this.data.tabScrollTop) {
this.setData({
tabFixed: true
})
console.log( "我锁定了")
} else {
this.setData({
tabFixed: false
})
}
},
toblock1: function(){
wx.pageScrollTo({ scrollTop: this.data.block_1ScrollTop})
},
toblock2: function () {
wx.pageScrollTo({ scrollTop: this.data.block_2ScrollTop})
},
toblock3: function () {
wx.pageScrollTo({ scrollTop: this.data.block_3ScrollTop})
}

 

 

 

工作比较忙,只能提供一个思路了,有空再整理吧.......

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值