代码拉取完成,页面将自动刷新
自定义导航栏
1.状态栏(时间和电量显示那一栏) + 2.状态栏和标题栏之间的间距 + 3.标题栏(小程序胶囊按钮那一栏) + 4.标题栏和正文区域之间的间距
/**
* 获取微信小程序菜单栏(胶囊)信息
* 菜单按键宽度:width
* 菜单按键高度:height
* 菜单按键上边界坐标:top
* 菜单按键右边界坐标:right
* 菜单按键下边界坐标:bottom
* 菜单按键左边界坐标:left
*/
wx.getMenuButtonBoundingClientRect();
> 重点: 此api返回的是胶囊按钮在页面中的的上下左右坐标的绝对位置
> 注意:在模拟器使用时记得把视图百分比调为100%,否则可能会导致获取数据不准确
// 获取系统信息
const systemInfo = wx.getSystemInfoSync();
// 胶囊按钮位置信息
const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
// 导航栏高度 = 状态栏到胶囊的间距(胶囊上坐标位置-状态栏高度) * 2 + 胶囊高度 + 状态栏高度
this.globalData.navBarHeight = (menuButtonInfo.top - systemInfo.statusBarHeight) * 2 + menuButtonInfo.height + systemInfo.statusBarHeight;
// 状态栏和菜单按钮(标题栏)之间的间距
// 等同于菜单按钮(标题栏)到正文之间的间距(胶囊上坐标位置-状态栏高度)
this.globalData.menuBottom = menuButtonInfo.top - systemInfo.statusBarHeight;
// 菜单按钮栏(标题栏)的高度
this.globalData.menuHeight = menuButtonInfo.height;
app.js
onLaunch() {
this.getToken()
// 获取系统信息
const systemInfo = wx.getSystemInfoSync();
// 胶囊按钮位置信息
const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
console.log(333, systemInfo, menuButtonInfo);
// 导航栏高度 = 状态栏到胶囊的间距(胶囊上坐标位置-状态栏高度) * 2 + 胶囊高度 + 状态栏高度
this.globalData.navBarHeight = (menuButtonInfo.top - systemInfo.statusBarHeight) * 2 + menuButtonInfo.height + systemInfo.statusBarHeight;
// 状态栏和菜单按钮(标题栏)之间的间距
// 等同于菜单按钮(标题栏)到正文之间的间距(胶囊上坐标位置-状态栏高度)
this.globalData.menuBottom = menuButtonInfo.top - systemInfo.statusBarHeight;
// 菜单按钮栏(标题栏)的高度
this.globalData.menuHeight = menuButtonInfo.height;
this.globalData.top = menuButtonInfo.top;
this.globalData.leftWidth = systemInfo.screenWidth - menuButtonInfo.width - (systemInfo.screenWidth - menuButtonInfo.right) * 2;
},
// 数据都是根据当前机型进行计算,这样的方式兼容大部分机器
globalData: {
top: 0,
leftWidth: 0,
//全局数据管理
navBarHeight: 0, // 导航栏高度
menuBottom: 0, // 胶囊距底部间距(顶部间距也是这个)
menuHeight: 0, // 胶囊高度
},
安全区域:刘海, 圆角,底部小黑条 等
一些名词: 从iphoneX开始,物理Home键,全面屏,非全面屏
普遍问题就是底部按钮或者选项卡与底部黑线重叠
**适配方案:**当前有效的解决方式有几种
使用已知底部小黑条高度34px/68rpx来适配
使用苹果官方推出的css函数env()、constant()适配
这种方案是苹果官方推荐使用env(),constant()来适配,开发者不需要管数值具体是多少
env和constant是IOS11新增特性,有4个预定义变量
safe-area-inset- TOP/LEFT/RIGHT/BOTTOM
constant和env不能调换位置
padding-bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/
padding-bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/
使用微信官方API,getSystemInfo()中的safeArea对象进行适配
采用viewport+env+constant方案
将viewport设置为cover,env和constant才能生效
<meta name="viewport" content="width=device-width,initial-scale=1.0,viewport-fit=cover">
同时设置env和constant代码,同样env()和constant()需要同时存在,而且顺序不能换
/* 可以通过增加padding-bottom来适配 */
padding-bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/
padding-bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/
/* 可以通过margin-bottom来适配 */
margin-bottom: constant(safe-area-inset-bottom);
margin-bottom: env(safe-area-inset-bottom);
/* 或者改变高度*/
height: calc(55px + constant(safe-area-inset-bottom));
height: calc(55px + env(safe-area-inset-bottom));
找工作 面试题 八股文 一定要非常熟悉 --- 让你们去面试
人资 14天 小程序8天 + uniapp + vue3 12天 ---- 进入公司能正常的写代码
快乐修 2023.1 --- 2023.4
项目的技术: 原生小程序 + vant-ui +sass +腾讯云储存 + 腾讯位置服务
项目的介绍:快乐修这个小程序主要是服务于周边社区的小程序。主要为附件社区的具名 提供生活家电报修,访客门禁,代送外卖等服务器。该项目主要包含有 房屋管理,报修管理,访客管理,外卖管理 等等。
负责的模块:房屋分包里面所有的模块,涉及到列表,详情,地图等常用功能。报修管理等功能
主要职责:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。