收藏
回答

wx.getMenuButtonBoundingClientRect()获取的属性,top值不准确

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug getMenuButtonBoundingClientRect() 微信iOS客户端 7.0.18 2.13.1

测试屏幕参数iphone6/7/8,在默认模式下,获取screenHeight为667px,windowHeight为603px,statusBarHeight为20px,计算顶部导航栏高度为44px,(44-32(胶囊高度))/2 = 6px (即胶囊距离状态栏底部的距离),

但是wx.getMenuButtonBoundingClientRect()获取的top值t为24px,24-20(状态栏高度) = 4px (即胶囊距离状态栏底部的距离)

真机和编辑器都出现问题 安卓 ios 都有 计算差值对应不起来


回答关注问题邀请回答
收藏

8 个回答

  • 似水流年
    似水流年
    2021-07-29

    IOS端(不包含Mac,只包含iPhone和iPad),导航栏高度=状态栏高度+标题栏高度,标题栏高度=胶囊按钮高度+3*(胶囊按钮Top-状态栏高度),=> iPhoneX 模拟器下:32+ 3*(48 - 44)=44px;

    非IOS端,导航栏高度=状态栏高度+标题栏高度,标题栏高度=胶囊按钮高度+2*(胶囊按钮Top-状态栏高度),=> Mac13 模拟器下:32+2*(28 - 20)=48px;

    没有iPhone手机,只能用微信开发者工具内置的模拟器,测试iPhone机型符合;

    Android端,多款真机运行,并反复更改微信设置的字体大小,与原生导航栏高度相同;

    初步结论是:IOS端,胶囊按钮下边距为上边距的两倍(下8,上4);非IOS端,胶囊按钮上下边距相等

    2021-07-29
    有用 1
    回复
  • 指尖
    指尖
    2021-12-31

    到现在还偏差呢

    2021-12-31
    有用
    回复
  • 次而疤(@_@)
    次而疤(@_@)
    2021-08-06

    都2021年8月份了上次本来想着偷懒直接获取位置信息安卓端位置直接飘移了

    2021-08-06
    有用
    回复
  • 唧唧复唧唧。
    唧唧复唧唧。
    2021-07-06

    2021年了,还有偏差呢

    2021-07-06
    有用
    回复
  • Nocturner
    Nocturner
    2021-03-11

    可以理解成胶囊有一个border:1px

    2021-03-11
    有用
    回复
  • ㊣
    2021-03-07

    到现在top还有偏差呢

    2021-03-07
    有用
    回复
  • Zhao ZW
    Zhao ZW
    2021-01-12

    一直有这个疑问,不知道哪里不对!

    2021-01-12
    有用
    回复
  • 可乐加冰
    可乐加冰
    2020-12-04

    谁理一下呀

    2020-12-04
    有用
    回复 2
    • Zhao ZW
      Zhao ZW
      2021-01-12
      弄明白怎么回事了么?
      2021-01-12
      回复
    • 可乐加冰
      可乐加冰
      2021-10-29回复Zhao ZW
      边框呗 加2px吧 刚刚好
      2021-10-29
      回复
登录 后发表内容
问题标签