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