getMenuButtonBoundingClientRect应该怎么用
发布于 5 年前 作者 junfang 8802 次浏览 来自 问答

小游戏开发

今天用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

4 回复

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

就是top不对

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

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

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

回到顶部