没有用过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 }) } }, })