当前位置: 首页 > article >正文

微信小程序自定义顶部导航栏(适配各种机型)

效果图

1.pages.js,需要自定义导航栏的页面设置"navigationStyle": "custom"

2.App.vue,获取设备高度及胶囊位置

  onLaunch: function () {
    // 系统信息
    const systemInfo = uni.getSystemInfoSync()
    // 胶囊按钮位置信息
    const menuButtonInfo = uni.getMenuButtonBoundingClientRect()

    this.globalData.navBarInfo = {
      statusBarHeight: systemInfo.statusBarHeight,
      top: menuButtonInfo.top,
      height: menuButtonInfo.height,
      paddingTop: menuButtonInfo.top + menuButtonInfo.height + menuButtonInfo.top - systemInfo.statusBarHeight,
      windowHeight: systemInfo.windowHeight
    };
  },

3.在需要的地方设置导航栏高度

<template>
  <view class="customNav" :style="{ ...styleClass, opacity: opacity, backgroundColor: bgcolorString }">
    <slot></slot>
  </view>
</template>
    const state = reactive({
      styleClass: {
        paddingTop: '60px',
        height: '32px',
      }
    })
    onShow(() => {
      const navBarInfo = getApp().globalData.navBarInfo
      state.styleClass = {
        paddingTop: navBarInfo.statusBarHeight + 'px',
        height: (navBarInfo.top - navBarInfo.statusBarHeight) * 2 + navBarInfo.height + 'px',
      }
    })


http://www.kler.cn/a/399272.html

相关文章:

  • Spring Boot教程之Spring Boot简介
  • 【C++滑动窗口】1248. 统计「优美子数组」|1623
  • 计算机组成与原理(2) basic of computer architecture
  • 基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
  • http响应码https的区别
  • 工厂模式-简单工厂模式
  • IOException: Broken pipe与IOException: 远程主机强迫关闭了一个现有的连接
  • C语言项⽬实践-贪吃蛇
  • Asp.net Mvc 电脑销售系统
  • @ComponentScan:Spring Boot中的自动装配大师
  • Ubuntu下Xshell连接腾讯云服务器
  • 第26天进程(一)
  • 创建型设计模式与面向接口编程
  • w040基于web的社区医院信息平台
  • 【MYSQL】锁详解(全局锁、表级锁、行级锁)【快速理解】
  • STL关联式容器介绍
  • 预处理(1)(手绘)
  • 【Axure原型分享】轮播表格_开始暂停效果
  • 基于语法树的SQL自动改写工具开发系列(2)-使用PYTHON进行简单SQL改写的开发实战
  • LeetCode题解:18.四数之和【Python题解超详细】,三数之和 vs. 四数之和
  • redis类型介绍
  • docker .vhdx文件压缩
  • Linux性能优化之火焰图简介
  • Failed to create a temp file - Jenkins 无法创建任务
  • SpringCloud篇(服务保护 - Sentinel)
  • [C++] 惯用法