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

小程序返回按钮,兼容所有机型的高度办法

现象

在使用返回按钮的时候在不同机型上返回按钮小图标位置总是不一样,一会高一会低。

原因

因为手机的状态栏一般是不一样的,导致设置固定高度的时候就随时在改变。

解决办法

  1. 直接获取胶囊按钮的top值和height值
  2. 将返回按钮的top值设置为一样的,将图标按钮高度设置一样的,注意宽度尽量大一点,防止图片失真。

实例代码

page.wxml

<navigator open-type="navigateBack" class="back-button" style="top: {{navTop}}px; height: {{navHeight}}px;" bindtap="goBack"><image src="https://serve.zimeinew.com/images/back.png" mode="aspectFit" />
</navigator>
属性 / 元素作用说明
navigator用于页面跳转组件。
open-type="navigateBack"表示“返回上一页”。
class="back-button"给返回按钮设置样式。
bindtap="goBack"绑定点击事件 goBack 方法。
<image ... />返回按钮的图标。
mode="aspectFit"控制图片显示的模式。aspectFit 表示:保持原始宽高比缩放图片。
.back-button {position: fixed;left: 20rpx;top: 75rpx;width: 70rpx;height: 70rpx;z-index: 999;
}.back-button image{width: 100%;height: 100%;/* object-fit: contain; 保证图片完整显示且不变形 */
}
Component({properties: {},data: {navTop: 0,navHeight: 0},lifetimes: {attached() {this.getNavHeight();}},methods: {getNavHeight() {const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); // 获取胶囊按钮信息const navTop = menuButtonInfo.top; // 胶囊按钮顶部坐标const navHeight = menuButtonInfo.height; // 胶囊按钮右侧坐标this.setData({navTop: navTop,navHeight: navHeight});}}
});

总结

返回按钮Top和Height与胶囊属性相同。

扩展

不同设备的状态栏属性
在这里插入图片描述
获取胶囊按钮信息

const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); // 获取胶囊按钮信息
console.log(menuButtonInfo)

获取设备信息,获取设备状态栏高度

const systemInfo = wx.getSystemInfoSync(); // 获取系统信息
const statusBarHeight = systemInfo.statusBarHeight; // 状态栏高度
console.log(systemInfo)
console.log(statusBarHeight)
http://www.dtcms.com/a/135765.html

相关文章:

  • 使用KeilAssistant代替keil的UI界面
  • 免费参与的局限与付费模式创新:基于开源AI智能名片链动2+1模式S2B2C商城小程序的应用思考
  • STM32 四足机器人常见问题汇总
  • 体育比分小程序怎么提示日活
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——USB OTG测试
  • 【解锁元生代】ComfyUI工作流与云原生后端的深度融合:下一代AIGC开发范式革命
  • Lucene.NET + Jieba分词:核心词典与停用词配置详解
  • 初识Redis · set和zset
  • NO.95十六届蓝桥杯备战|图论基础-单源最短路|负环|BF判断负环|SPFA判断负环|邮递员送信|采购特价产品|拉近距离|最短路计数(C++)
  • TDengine 3.3.6.3 虚拟表简单验证
  • 【设计模式——策略模式】
  • Selenium 入门介绍
  • 第三章 爬虫提速、selenium模块、requests模块进阶(终)
  • npm install 报错常见的解决方法
  • k8s中pod报错 FailedCreatePodSandBox
  • ASP.NET WEB 手动推送 URL 到百度站长工具实例
  • python idea pycharm ModuleNotFoundError: No module named ‘bin‘
  • 【Netty4核心原理】【全系列文章目录】
  • Web3技术下数字资产数据保护的实践探索
  • ES6的`class`中,`super`关键字在构造函数和非构造函数中的行为有何不同?
  • 【数据结构】励志大厂版·初阶(复习+刷题):线性表(顺序表)
  • ArrayList 和 LinkedList 区别
  • C++中类的静态成员详解
  • 一体化安全管控平台:消防“一张图”与APP统一管理的创新模式
  • 小草GrassRouter多5G聚合路由设备在应急公安消防行业的解决方案及重要作用
  • STM32 HAL库 DS18B20驱动实现
  • Spark-SQL3
  • 机器学习 | 神经网络介绍 | 概念向
  • 【MSSQL】SQL Server性能优化终极指南:临时表、表变量与CTE的巅峰对决
  • IO 口作为外部中断输入