胶囊按钮是小程序固定在屏幕右上角的菜单按钮,uni.getMenuButtonBoundingClientRect()
方法是uniapp用于返回该胶囊菜单按钮的宽度、高度、上边界坐标、右边界坐标、下边界坐标和左边界坐标共六个布局信息。在开发小程序页面的自定义导航栏时,经常需要把自定义内容的高度和胶囊按钮的高度保持一致,便于和胶囊按钮垂直对齐,就需要通过该方法获取返回的布局信息来调整自定义导航的布局。
使用示例:
const rect = uni.getMenuButtonBoundingClientRect(); console.log(rect.width); // 胶囊按钮的宽度
返回的对象属性:
{ width: number, // 宽度,单位:px height: number, // 高度,单位:px top: number, // 上边界坐标,单位:px right: number, // 右边界坐标,单位:px bottom: number, // 下边界坐标,单位:px left: number // 左边界坐标,单位:px }
UniApp使用实例:
export default { data() { return { menuWidth:0, menuHeight:0, menuTop:0, menuRight:0, menuBottom:0, menuLeft:0 }; }, methods: { setNavigationCss: function(){ const menuButtonInfo = uni.getMenuButtonBoundingClientRect(); //获取胶囊按钮的布局信息 this.menuWidth = menuButtonInfo.width + 'px'; this.menuHeight = menuButtonInfo.height + 'px'; this.menuTop = menuButtonInfo.top + 'px'; this.menuRight = menuButtonInfo.right + 'px'; this.menuBottom = menuButtonInfo.bottom + 'px'; this.menuLeft = menuButtonInfo.left + 'px'; } }, mounted() { this.setNavigationCss(); } }
提示:需要在页面渲染完成后调用,建议在 onReady 或 mounted 生命周期中调用
注意:该方法兼容性:微信小程序、支付宝小程序、抖音小程序等,H5 端返回空对象,App 端可能不支持或返回模拟数据,但不同端可能实现有差异,建议在使用时进行测试。