美文网首页微信小程序
小程序填坑日记之获取view高度

小程序填坑日记之获取view高度

作者: MacSam | 来源:发表于2017-12-20 14:54 被阅读1617次

这两天UI提了一种交互效果,希望页面滚动到某个位置的时候让一个按钮fix住,而这个位置时不定高度的,这个位置会根据当前页面的内容多少而动态改变(简而言之就是 height:auto)
废话不多说,直接撸代码

  • 在Page的onReady回调里获取特定元素的高度
    这里用到了小程序api-wx.createSelectorQuery(),指定ID元素的详细属性会在rect的回调里返回
onReady () {
    setTimeout(() => {
      const _this = this
      wx.createSelectorQuery().select('#YOUR_ELEMEMT_ID')
        .boundingClientRect(function (rect) {
            console.log(rect)
            _this.setData({
              top: rect.top
           })
      }).exec()
    }, 300)
}
  • 有人可能会问上面代码的定时器是干嘛的,不是已经在页面渲染完成OnReady回调里了吗?
  • 事实上,这里可能是小程序的bug,如果不加定时器,获取的元素高度还是没渲染完异步数据前的高度
  • 当获取到高度后就可以实现滚动到某个位置进行fixed的操作了
onPageScroll (e) {
    if (this.data.top <= e.scrollTop) {
      this.setData({
        fixed: true
      })
    } else {
      this.setData({
        fixed: false
      })
    }
  }
  <!-- 这里是粗略的页面和样式-->
  <view class="{{fixed?'fixed':''}}" id="YOUR_ELEMENT_ID">
     在这里固定住
  </view>

 .fixed{
   position:fixed;
 }
  • 写在最后的话:
    1. 如果有更好的解决方案请在下方留言
    2. 转载请注明出处

相关文章

  • 小程序填坑日记之获取view高度

    这两天UI提了一种交互效果,希望页面滚动到某个位置的时候让一个按钮fix住,而这个位置时不定高度的,这个位置会根据...

  • 小程序web-view填坑

    前言 小程序新出了web-view,正好有一个需求需要做页面跳转,在此记录下过程中发现的填坑 白名单设置 白名单是...

  • 小程序填坑

    小程序的任何json文件都不要加任何注释信息 双花括号才能实现属性设置false的定义,否则失效 元素的显示和隐藏...

  • 小程序填坑

    小程序很火,开发看起来也很友好,但是真正开发过后就会发现,真的是坑很多。 组件的坑 在小程序中,组件分为原生组件和...

  • 小程序填坑

    小程序中的属性设置真vertical="true"假 vertical="{{false}}" 不要直接写 ver...

  • 小程序填坑

    在后台配置的请求域名https://easy-mock.com/,在实际中不能包含www,如https://www...

  • 微信小程序-动态获取view高度

    因为对小程序父标签和子标签的布局还不是特别了解,不像ios,父标签固定,子标签通过mansory去布局距离父的底部...

  • 自定义View(待整理)

    1.坐标系 View获取自身宽高 getHeight():获取View自身高度 getWidth():获取View...

  • 人生的高度是填坑的能力

    人生的高度是填坑的能力

  • 小程序项目之再填坑

    简诉 是的,真的,你没有看错,我就是上次那个加薪的,但是现在问题来了,最近又搞了个小程序的需求,又填了不少坑,其中...

网友评论

    本文标题:小程序填坑日记之获取view高度

    本文链接:https://www.haomeiwen.com/subject/juygwxtx.html