热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序mpvue自定义导航栏适配方案

在正文开始之前首先得了解一下我们设计稿的1px

在正文开始之前 首先得了解一下我们设计稿的1px在手机中是怎样显示出来的,首先看下图
在这里插入图片描述

从上图得知了各个安卓和IOS常规屏幕的宽高以及像素比,在日常设计稿常以iPhone6 750px(375 * 2 = 750) 为标准设计,从以上信息得知我们设计稿中的1px 在iPhone6中是占据了2px
在这里插入图片描述

下面将以10px为单位在每一个型号进行单位换算

型号宽度高度设计稿单位(宽度)像素比转换单位(10px)
iPhone5320568640220
iPhone6375667750220
iPhone6 Plus4147361242330
iPhone7375667750220
iPhone7 Plus4147361242330
iPhone X3758121125330
Nexus 53606401080330
Nexus 5x4117311078.8752.62526.25
Nexus 641273215363.535

从上表发现了一个规律 以iPhone6与iPhone6 Plus 为例 转换单位是由 像素比 * 转换单位 得出 由此推算得出单位转换公式

(像素比 * 转换单位)/ 像素比

例子:

(2 * 10)/ 2 = 10//iPhone6
(3 * 10)/ 3 = 10//iPhone6 Plus

那么得到了需要转换的单位后怎么进行适配呢,首先要得到系统状态栏高度,利用小程序API wx.getSystemInfo(Object object)(官方文档传送门)中的statusBarHeight得到了系统状态栏高度(解决万恶的刘海屏,水滴屏问题),现在问题最大的系统状态栏高度已经获取到之后就可以开始写了

mpvue代码:

App.vue



组件文件: frames.vue




调用组件页面index.vue




效果图:
在这里插入图片描述
安卓水滴屏 OPPP R17
在这里插入图片描述
IOS刘海屏 苹果X
在这里插入图片描述

安卓常规屏 OPPO R11S

在这里插入图片描述
IOS常规屏 苹果8


推荐阅读
author-avatar
Samuel小嘎嘎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有