uniapp用于获取小程序右上角胶囊按钮布局信息的 API uni.getMenuButtonBoundingClientRect()

Web前端开发 / 18 次阅读

胶囊按钮是小程序固定在屏幕右上角的菜单按钮,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 端可能不支持或返回模拟数据,但不同端可能实现有差异,建议在使用时进行测试。