收藏
回答

getMenuButtonBoundingClientRect应该怎么用

小游戏开发

今天用wx.getMenuButtonBoundingClientRect做排版,在开发工具里选各个机型都很完美,

上真机后就有错位,小米和iPhonexs都有错位,

然后研究了下,将纵向加上sysInfo.statusBarHeight/sysInfo.pixelRatio,然后小米正常了,但iPhonexs还是不行,开发工具里也错位了


wx.getMenuButtonBoundingClientRect的top到底是啥含义,离屏幕上边?离状态栏下边?还是其他?这个函数应该怎么用才能统一呢?


代码片段https://developers.weixin.qq.com/s/EUcK4lmf7h5T

代码如下

let canvas = wx.createCanvas();

let ctx = canvas.getContext('2d')


function loop(){

let menuRect = wx.getMenuButtonBoundingClientRect();

ctx.fillStyle = "black";

ctx.clearRect(0, 0, canvas.width, canvas.height);

ctx.fillStyle = "white";

ctx.fillRect(menuRect.left, menuRect.top, menuRect.width, menuRect.height);

}


setInterval(loop, 1000 / 60);


开发工具里


真机上 小米5splus


最后一次编辑于  2019-01-11
回答关注问题邀请回答
收藏

4 个回答

  • 老张
    老张
    2019-01-10

    就是top不对

    比如我小米5splus上函数返回top是8,sysInfo里pixelRatio是2.75, 但实际我截屏量了离屏幕上边是46像素,left倒是对的

    按理微信能把自己的按钮显示在那,他们自己的api不应该拿不准啊



    2019-01-10
    有用 1
    回复 1
  • 长天
    长天
    2019-01-16

    这个接口有问题,获取的菜单布局信息不对,有错位,不知道官方当时测试测到没?

    2019-01-16
    有用
    回复 1
    • 2019-01-18

      官方没测试。我不同的项目不同的返回值也是不一样的。真神奇

      2019-01-18
      回复
  • 是小白啊
    是小白啊
    2019-01-10

    麻烦提供下代码片段以及相关的截图:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-01-10
    有用
    回复 1
    • 老张
      老张
      2019-01-11

      已贴上

      2019-01-11
      回复
  • 发飙的蜗牛
    发飙的蜗牛
    2019-01-10

    你贴个图。 小程序getMenuButtonBoundingClientRect 我提了个问。 感觉有bug

    2019-01-10
    有用
    回复
登录 后发表内容