沒有用過vue等MVVM的框架,直接開始做小程序,沒有dom操作真是各種不適應,思維有時都轉換不過來
想要做的效果是 很常見的滾動條超出某個元素時,該元素固定在頂部
網上看到的獲取滾動條高度及返回頂部的代碼
onPageScroll:function(e){ // 獲取滾動條當前位置
console.log(e)
},
goTop: function (e) { // 一鍵回到頂部
if (wx.pageScrollTo) {
wx.pageScrollTo({
scrollTop: 0
})
} else {
wx.showModal({
title: '提示',
content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本后重試。'
})
}
}
在api WXML節點信息這邊可以選取節點並使用boundingClientRect方法獲取元素信息
代碼如下:
<view class='tab-con' id="tab-con">
<view class="tab {{tabFixed ? 'tab-fixed':''}}">
<view>二月</view>
<view>三月</view>
<view>四月</view>
</view>
</view>
js代碼大概如下
Page({
data: {
tabScrollTop: 0,
tabFixed: false
},
onReady:function(){
var that = this;
var query = wx.createSelectorQuery()
query.select('#tab-con').boundingClientRect(function (res) {
that.setData({
tabScrollTop: res.top
})
}).exec()
},
onPageScroll: function (e) { // 獲取滾動條當前位置
if (e.scrollTop > this.data.tabScrollTop) {
this.setData({
tabFixed: true
})
}else{
this.setData({
tabFixed: false
})
}
},
})
