评论

自定义顶部导航栏时,刘海屏高度偏差问题解决

解决高度偏差问题

"navigationStyle": "custom"

涉及知识点

获取右上角胶囊的布局

获取页面上的节点信息

wxml部分

<view id="top-layout" class="top-layout">
  <view style="margin-top: {{clientRectTop}}px;padding-right: {{clientRectWidth}}px;">
    <search-bar bind:search="search" align="center" />
  </view>
</view>
<view class="app-content" style="margin-top: {{topLayoutH}}px;">
  文本内容
</view>


js部分

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    //获取右上角胶囊布局信息
    const rect = wx.getMenuButtonBoundingClientRect()
    console.log(rect);
    this.setData({
      clientRectTop: rect.top,
      clientRectBottom: (rect.bottom + 10), //10补偿余量
      clientRectWidth: (rect.width + 12), //12补偿间隙
      clientRectHeight: (rect.height)
    })
    // 获取页面节点布局
    const query = wx.createSelectorQuery()
    // 获取头部 id="top-layout" 的布局信息
    query.select('#top-layout').boundingClientRect()
    query.exec((res) => {
      console.log(res);
      this.setData({
        topLayoutH: res[0].height
      })
    })
  }


最后一次编辑于  2022-09-16  
点赞 0
收藏
评论
登录 后发表内容