首页 > 编程语言 >微信小程序自定义顶部tap栏

微信小程序自定义顶部tap栏

时间:2024-01-19 16:11:28浏览次数:36  
标签:tap 状态栏 自定义 微信 胶囊 高度 globalData wx menuButtonInfo

第一步:隐藏原生导航栏效果

                                                (默认效果)

json中配置:

 "window": {    "navigationStyle": "custom"   }

 (成功去除顶部tab栏,只留下了胶囊,但轮播图直接与顶部图标融在一起了)

第二步:适应各种手机的边距

 

第一根竖线=  状态栏高度

胶囊顶部=  状态栏高度 + 第二根短竖线,

第三根竖线=  胶囊高度

故整个状态栏高度= 状态栏高度+胶囊高度+(胶囊顶部-状态栏高度)*2

js文件

知识点1:获取胶囊按钮信息【界面 / 菜单 / wx.getMenuButtonBoundingClientRect (qq.com)

App({   onLaunch: function () {     const menuButtonInfo = wx.getMenuButtonBoundingClientRect();     console.log(menuButtonInfo)   

 知识点2:获取设备信息【基础 / 系统 / wx.getSystemInfo (qq.com)

 try {       const res = wx.getSystemInfoSync()       console.log(res.statusBarHeight);  获取状态栏高度     } catch (e) {       console.log("error");     }

 实现:保存数据信息

定义一个全局对象用于保存一些设备及胶囊的数据,  在其他页面onLoad之后可以通过const App = getApp(), App.globalData. 的方式访问 

App({   globalData:{     navBarHeight: 0, // 导航栏高度     menuRight: 0, // 胶囊距右方间距(方保持左、右间距一致)     menuTop: 0, // 胶囊距顶部间距     menuHeight: 0, // 胶囊高度(自定义内容可与胶囊高度保证一致)
  },

 onLaunch: function () {

    const menuButtonInfo = wx.getMenuButtonBoundingClientRect();     try {       const res = wx.getSystemInfoSync()       this.globalData.navBarHeight = menuButtonInfo.top+menuButtonInfo.height+(menuButtonInfo.top-res.statusBarHeight)*2;       this.globalData.menuRight = menuButtonInfo.left;       this.globalData.menuTop = menuButtonInfo.top;       this.globalData.menuHeight = menuButtonInfo.height;     } catch (e) {       console.log("error");     }

 

标签:tap,状态栏,自定义,微信,胶囊,高度,globalData,wx,menuButtonInfo
From: https://www.cnblogs.com/yheyi/p/17972496

相关文章

  • 公司数百名项目经理如何交流,微信群不管用,可以尝试这个方法
    我们公司有两百多位项目经理,分散在全国各地。 虽然我们有个”项目经理群“,但分享互动效果很差。最热闹的场景还是金主们发红包的时候。 这可能与群的性质有关,工作和灌水之间的界限较模糊,大家发消息时,总有点儿顾及。 项目经理之间的沟通和经验分享是主动学习的一种较好方......
  • 性能调优:深入理解 FastAPI 并发请求处理
    在当今的数字化世界中,网络用户对于高速响应和持续连接的诉求日益显著。这促使了基于Python构建的FastAPI一、开始使用FastAPI在开始之前,请先确认已经安装了FastAPI。可以通过以下pip命令进行安装:1pipinstallfastapi建设一个基础的FastAPI应用来实例化并发请求处理非常直......
  • fastapi接收图片文件
    #api接口,主函数importbase64importioimportcv2importosimporttimefromPILimportImageimportnumpyasnpfromfastapiimportFastAPI,HTTPExceptionimportuvicornapp=FastAPI()##############################################@app.post("/upload......
  • 使用Python监听并下载微信聊天表情包
    实现的功能只要有人给你发了表情包,不管是群聊还是个人发的,都将它保存到本地。也许某天斗图的时候就能用到,不过即使有了表情包,还需要一个检索功能,不然这一张一张看也太费眼睛了。检索表情包检索表情包的功能实现比较麻烦,至少需要两个模型:ocr和图片描述生成,如果更复杂点的话还需......
  • STM32CubeMX教程18 DAC - DMA输出自定义波形
    1、准备材料开发板(正点原子stm32f407探索者开发板V2.4)STM32CubeMX软件(Version6.10.0)野火DAP仿真器keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动一台示波器逻辑分析仪nanoDLA2、实验目标使用STM32CubeMX软件配置STM32F407开发板的DACOUT1实现输出0-3.3V周期为12.8ms的正弦......
  • 用户自定义模板中数据区域
    在实际的Word文档开发中,经常需要自动填充数据到Word模板中,以生成动态的Word文档,那么应该如何编辑制作Word模板呢?方法一:直接打开Word文件插入书签假如使用数据区域(DataRegion)来定义模板中动态填充数据的位置,那么直接打开一个Word文件,在其中添加“PO_”开头的书签即可制作word模板......
  • HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例
    HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例声明式UIArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。如果组件的接口定义没有包含必选构造参数,则组件后面的“()”......
  • 【uniapp】CSS样式穿透(vue3 setup 微信小程序)
     如果想要在编译为微信小程序时使用样式穿透,光使用`::v-deep`没效果,查了文档发现需要设置`options:{styleIsolation:"shared"}`,但是此时我用的setup语法很离谱,查阅不到相关内容,尝试多次最后的解决方法如图所示,增加一个script标签设置即可。这样就能生效了。......
  • 2024年首次更新!微信iOS 8.0.46发布:手机空间清理更方便、看广告免费听VIP音乐
    从微信官网获悉,日前,微信iOS版发布8.0.46正式版更新,这是iOS版2024年的首次更新。更新日志还是熟悉的那几个字:“修复了一些已知问题。”根据实测,微信在8.0.46版本中新增了一项比较实用的功能。具体来看,微信iOS8.0.46版将原本不可删除的“其他数据”拆分,新增“资源文件和其他账......
  • MFC 自定义控件添加 tip
    一、要求1.自定义tip提示并实时提示,跟随鼠标移动2.避免重复刷导致tip闪烁3.picture控件添加自定义变量二、tip涉及2.1CMFCToolTipCtrl、CMFCToolTipInfoCMFCToolTipCtrl*m_ptooltip;//注册控件、传递提示消息CMFCToolTipInfo*m_ttinfo;//样式处理......