介绍

最近在做微信小程序时,顶部标题栏总是与胶囊对不齐。往往是在这款手机上对齐了,在另外一款手机差很多。我在查阅资料后,提出了一种方法解决这个问题,即:在页面onLoad或组件created时,利用微信小程序提供的API,获取系统状态栏高度和胶囊信息,进而动态调整顶部标题栏样式。在苹果、小米、荣耀手机做验证,能做到精准对齐。

理论

胶囊样式应该是垂直居中,有1px的border,border-radius为18px 。

若要使顶部标题栏与胶囊对齐,则其高度必须是导航栏高度,标题栏内容也要垂直居中,顶部标题栏的外边距或内边距必须是状态栏高度

如果顶部标题栏内是一个输入框,为美观,输入框可以采用与胶囊相同的、border。(注意这里不能使用rpx,因为胶囊border是写死的1px,不会变化)

示意如下:

计算方法

状态栏高度:wx.getSystemInfoSync(),使用statusBarHeight。

胶囊高度:wx.getMenuButtonBoundingClientRect(),使用返回的height。

导航栏高度:(胶囊top-状态栏高度)*2 + 胶囊高度。

注意:导航栏高度可能要考虑胶囊border(1像素),我这里没有仔细验证。

示意代码

 //获取系统信息, 状态栏高度为 sysInfo['statusBarHeight'];let sysInfo = wx.getSystemInfoSync();// 胶囊信息let menu = wx.getMenuButtonBoundingClientRect();// 导航栏高度let navBarHeight = (menu.top - sysInfo.statusBarHeight) * 2 + menu.height;

一些错误的处理方式

导航栏高度错以为是屏幕高度-窗口高度-状态栏高度,经过验证是错误的。

标题栏border采用了相对像素值,如rpx\upx等。这是错误的,应用px。

参考资料        微信小程序自定义导航栏 胶囊菜单按钮高度适配 原理简单 赛过一些大厂的完美适配 妈妈再也不用担心我强迫症啦-物联网技术文章-傲云电气网傲云电气网最新文章:微信小程序自定义导航栏 胶囊菜单按钮高度适配 原理简单 赛过一些大厂的完美适配 妈妈再也不用担心我强迫症啦,在自定义小程序导航栏时,右上角的胶囊(MenuButton)在不同机型测试,会发现很难适配。不同的手机,胶囊高度也不一样,完全需要动态的计算高度。先看一些小程序顶部导航栏适配的情况图一 某团 图二 某乎 图三 某东 图四 某拉上图适配做的最好的是某东,但仔细看仍会有一点错位,但输入框的颜色,淡化了这种不和谐感。为解决这个问题就要搞清楚原理这是在没有设置自定义时的原生导航栏,我们发现整体的高度就是 (状态栏高度 + 导航栏高度)而状态栏高度可...https://www.weixiuzhan.cn/news/show-28971.html小程序全屏页面及自定义顶部标题栏(附getMenuButtonBoundingClientRect实现)_laishaojiang的博客-CSDN博客前段时间UI同学拿着知乎热榜小程序来问我,说现在小程序怎么这么牛皮了,居然可以把搜索栏放在顶部标题栏上面去了,然后质问我怎么不告诉她这个功能,因为她说要是早发现可以这样,她的设计就可以有很多方便的地方了。 我有种不好的预感,接下来刚上线不久的项目可以要大改- -!这是知乎热榜小程序,其实这并不是把搜索栏放在了顶部标题栏里面,而是把小程序把设置为全屏模式,只保留右上角的胶囊...https://blog.csdn.net/laishaojiang/article/details/103742078

微信小程序顶部标题栏与胶囊对齐相关推荐

  1. 微信小程序 自定义组件之 胶囊对齐 搜索FloatSearch

    大家好哇,我是梦辛工作室的灵,最近又写了一个 ui组件,是与 微信小程序 胶囊所对齐的 一个搜索框,还带展开过度动画哦,老样子,先看效果图 效果还是不错的,然后来看下如何使用: //先引入组件 &qu ...

  2. 微信小程序顶部标题栏仅保留右上角胶囊状按钮

    navigationStyle, (导航栏样式,仅支持 default/custom.custom 模式可自定义导航栏,只保留右上角胶囊状的按钮),如果在app.json里面的window增加navi ...

  3. 微信小程序定位地址与胶囊对齐

    主要是两个事件: 1,wx.getSystemInfoSync();  //获取系统信息, 状态栏高度为 sysInfo['statusBarHeight']; 2,wx.getMenuButtonB ...

  4. 微信小程序顶部透明状态标题栏搜索栏与胶囊对齐

    微信小程序顶部透明状态标题栏搜索栏LOGO与胶囊对齐 效果如下 App.js wx.getSystemInfo({success: res => {console.log(res)let cus ...

  5. 微信小程序顶部导航栏自定义,根据不同手机自适应距离状态栏高度,防止标题栏高度歪歪扭扭

    微信小程序顶部导航栏自定义,根据不同手机自适应距离状态栏高度 一.微信小程序顶部导航栏自定义 "navigationStyle": "custom"  app. ...

  6. 微信小程序 顶部 选项卡 tabs 下拉刷新

    微信小程序 顶部 选项卡 tabs 下拉刷新 **首先 wxml 页面 带swiper 滑动切换功能 ** <!--pages/my/my.wxml--> <view class=& ...

  7. 微信小程序 顶部搜索框滑动伸缩效果的实现

    项目场景:微信小程序顶部搜索框随页面滑动伸缩效果 提示:实现搜索框跟随用户滑动页面,实现伸缩效果 微信小程序 顶部搜索框滑动伸缩动画的实现 实现效果: 滑动前 滑动后 实现原理 提示:主要用到了微信小 ...

  8. 微信小程序图片文字水平垂直居中对齐

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 微信小程序图片文字水平垂直居中对齐 要实现水平垂直居中 可使用如下方案 给父元素设置 .td {dis ...

  9. 微信小程序-文本与图片无法对齐

    最近项目开发小程序,于是打算重新做一遍七月老师的小程序入门项目,熟悉一下,但是做到阅读页面时却突然遇到了一个问题:文本与图片怎么都无法对齐,真的是对着代码研究了一个多小时才突然想到了原因,想想也许有人 ...

最新文章

  1. Myeclipse在启动tomcat的时候的模式改变
  2. linux中original_如何在 Linux 中整理磁盘碎片
  3. 屏幕输出语句_第三章 常用输入/输出函数
  4. toft 测试用例rat_一篇文章详述配对测试的测试用例设计!强烈建议收藏
  5. gRPC-rs:从 C 到 Rust 1
  6. 前端学习(540):node.js简介
  7. (转) PowerDesigner中Table视图同时显示Code和Name
  8. 怎么实现单击span时给span添加边框
  9. getline基本用途
  10. idea代码格式美化快捷键
  11. Raywenderlich: 用 VFX 制作蝴蝶飞起的效果
  12. 如何给PPT加背景音乐
  13. 【自然语言处理】韩语基础与入门(语法篇)
  14. 实用计算机技术光盘,《计算机网络技术学习宝典》教学光盘使用说明.doc
  15. 韩寒等50名作家3.15联袂声讨百度侵权
  16. 字节飞书前端三轮技术面+HR面
  17. matlab论文致谢,2020大学毕业论文致谢信
  18. c语言中float是什么类型的数据,float是什么数据类型?
  19. vs调试详解(一)(小白教程)
  20. Barbara Liskov:CLU与Argus语言发明人

热门文章

  1. html+css样式:图片切换-----立体旋转
  2. OSChina 周日乱弹 —— 波赛冬之吻
  3. solidworks设置默认工程图模板
  4. BootStrap框架的下载与使用
  5. PADS 中如何删除自己打的地孔阵列
  6. wood计算机二级考试,全国计算机等级考试一级B上机考试指导(二)
  7. matlab神经网络训练停止条件,matlab神经网络工具箱的网络训练问题
  8. conv2d中groups和dilation
  9. linux/kali NAT网络连接修复
  10. 微信小程序:微信公众号关联小程序步骤