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

UniApp一句话经验: px -> rpx动态转换和动态元素区域的获取

px->rpx转换


在多终端条件下,什么devicePixelRatio,upx2px都是不靠谱的,最直接的是这样:

const { screenWidth } = uni.getSystemInfoSync()const pixelUnit = screenWidth / 750 // rpx->px比例基数

动态元素区域获取

多终端条件下,这样写兼容性高

export const getRect: (selector: string,selectAll: boolean,instance?: any
) => Promise<UniApp.NodeInfo | UniApp.NodeInfo[]> = (selector, selectAll = false, instance) => {// 注意非onMount和onReady时需要传入instance,可以通过getCurrentInstance()先获得return new Promise<UniApp.NodeInfo | UniApp.NodeInfo[]>((resolve) => {const query = instance? uni.createSelectorQuery().in(instance): uni.createSelectorQuery().in(getCurrentInstance())const view = selectAll ? query.selectAll(selector) : query.select(selector)view.fields({size: true,rect: true,scrollOffset: true},(res) => {resolve(res)}).exec()})
}

使用css选择器标记节点:动态节点建议用class,例如:

  const rect: UniApp.NodeInfo = await utils.getRect('.square-area')

  console.log('rect: ', rect)

注意这里获得的是px,如果要转化为rpx计算请参考前面的方式获取转换比例单位


文章内容太少,被搜索引擎所不齿。简单有用的知识不用繁文缛节

http://www.lryc.cn/news/442744.html

相关文章:

  • Python基于flask框架的智能停车场车位系统 数据可视化分析系统fyfc81
  • 海外服务器哪个速度最快且性能稳定
  • C/C++通过CLion2024进行Linux远程开发保姆级教学
  • 工程师 - 如何安装Windows 终端
  • UniApp 从Vue2升级为Vue3需要注意哪些方面
  • 前端面试CSS常见题目
  • 408算法题leetcode--第10天
  • 13年计算机考研408-数据结构
  • 跨平台开发新视角:利用Android WebView实现Web内容的原生体验
  • Stable Diffusion 使用详解(11)--- 场景ICON制作
  • 【Linux系统编程】第二十弹---进程优先级 命令行参数 环境变量
  • 无人机之4G模块的主要功能和优势
  • 深度学习-03 Pytorch
  • GRU(门控循环单元)的原理与代码实现
  • 【医疗大数据】医疗保健领域的大数据管理:采用挑战和影响
  • gevent + flask 接口会卡住
  • SpringCloud Alibaba五大组件之——Sentinel
  • brpc之io事件分发器
  • MySQL | 知识 | 从底层看清 InnoDB 数据结构
  • es的封装
  • 写一个自动化记录鼠标/键盘的动作,然后可以重复执行的python程序
  • Spring Boot-热部署问题
  • 深度学习——管理模型的参数
  • 芯片验证板卡设计原理图:372-基于XC7VX690T的万兆光纤、双FMC扩展的综合计算平台 RISCV 芯片验证平台
  • 【软设】 系统开发基础
  • Linux移植之系统烧写
  • 【数据结构与算法】LeetCode:双指针法
  • Istio下载及安装
  • Redis基础数据结构之 Sorted Set 有序集合 源码解读
  • 蓝队技能-应急响应篇Web内存马查杀JVM分析Class提取诊断反编译日志定性