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

uniapp写移动端常见问题汇总

1. 手机顶部状态栏遮挡

写在需要的地方

<view class="status_bar" style="height: var(--status-bar-height); width: 100%;">

2. 手机顶部状态栏字体颜色

// pages.json
"statusBarStyle": "light",

3. 背景覆盖全屏

page{width: 100%;height: 100%;
}
.index {width: 100%;height: 100%;background: url("@/static/1-bj.png") no-repeat center;
}

4. 手机端禁止拖拽页面

// pages.json
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index","style": {"app-plus": {"bounce": "none"}}}
],

5. 手机端隐藏顶部状态栏和底部按键

onShow: function() {// #ifdef APP-PLUS// 隐藏顶部电池,时间等信息plus.navigator.setFullscreen(true);//隐藏虚拟按键plus.navigator.hideSystemNavigation()// #endif
},

6. 绝对定位计算位置

const bear_box = this.$el.querySelector(".bear_box")
const shovel = this.$el.querySelector(".shovel1")
const sho = this.$el.querySelector(".shovel")
const stick = this.$el.querySelector(".stick")let len = stick.offsetHeight + sho.offsetHeight
console.log("整个铲子长度:", len)
let top = len * Math.cos(this.deg * Math.PI / 180)
console.log("铲子高度", top)
let left1 = len * Math.sin(this.deg * Math.PI / 180)
console.log("铲子宽度", -left1)
console.log("铲子左侧位置:", bear_box.offsetLeft + shovel.offsetLeft - left1)
console.log("铲子上侧位置:", bear_box.offsetTop + shovel.offsetTop + top)

或者

getElementInfo(className) {// 创建选择器对象const query = uni.createSelectorQuery().in(this);let eleInfo// 选择我们想要的元素query.select(className).boundingClientRect(data => {if (data) {eleInfo = data}}).exec(); // 执行选择器查询return eleInfo
}const shovel = this.getElementInfo(".shovel")
console.log("整个铲子长度:", shovel)

7. 获取整个屏幕宽高

getDeviceInfo() {const systemInfo = uni.getSystemInfoSync();this.screenWidth = systemInfo.screenWidththis.screenHeight = systemInfo.screenHeight
},

8. 获取元素信息

因为有时候获取不到,所以用同步

async getElementInfo(className) {return new Promise((resolve, reject) => {// 创建选择器对象const query = uni.createSelectorQuery().in(this);// 选择我们想要的元素query.select(className).boundingClientRect(data => {if (data) {resolve(data);} else {reject(new Error('如果没有获取到数据,返回错误'));}}).exec(); // 执行选择器查询});
}const timer = setInterval(async ()=>{const shovel = await this.getElementInfo(".shovel")
}, 20)

9. 碰撞检测

碰撞对象的中心坐标减去被碰撞对象的中心坐标的绝对值,
碰撞对象宽度/高度的一半加被碰撞对象宽度/高度的一半。
如果后者(高度与宽度同时)大于前者,两者相撞。
(该功能需要极短时间重复执行)

xCenter(Object)是一个取得jQuery对象相对父元素x轴坐标加上自身元素一半宽度值的函数
yCenter(Object)是一个取得jQuery对象相对父元素y轴坐标加上自身元素一半宽度值的函数

Math.abs(xCenter(碰撞对象) - xCenter(被碰撞对象)) < hWidth(碰撞对象) + hWidth(被碰撞对象)
&& Math.abs(yCenter(碰撞对象) - yCenter(被碰撞对象)) < hHeight(碰撞对象) + hHeight(被碰撞对象)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【AI大模型】OpenAI API实现翻译助手场景
  • 校验(网络传输)
  • [数据集][目标检测]俯拍航拍森林火灾检测数据集VOC+YOLO格式6116张2类别
  • (k8s)Kubernetes本地存储接入
  • PostgreSQL LSN 详解及转换工具
  • [linux 驱动]misc设备驱动详解与实战
  • 【Bean】BeanPostProcessor的前置方法和后置方法的作用和使用
  • clip论文阅读(Learning Transferable Visual Models From Natural Language Supervision)
  • 探索Go语言中的随机数生成、矩阵运算与数独验证
  • 代理IP池纯净度对数据抓取有影响吗?
  • flink on k8s
  • Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
  • MongoDB高可用和分片集群知识
  • 【C++】标准库IO查漏补缺
  • CORS漏洞及其防御措施:保护Web应用免受攻击
  • JS 中的深拷贝与浅拷贝
  • fetch 从初识到应用
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java新版本的开发已正式进入轨道,版本号18.3
  • k个最大的数及变种小结
  • Linux gpio口使用方法
  • linux学习笔记
  • Promise初体验
  • swift基础之_对象 实例方法 对象方法。
  • vue-cli在webpack的配置文件探究
  • 测试开发系类之接口自动化测试
  • 仿天猫超市收藏抛物线动画工具库
  • 观察者模式实现非直接耦合
  • 离散点最小(凸)包围边界查找
  • 聊聊flink的BlobWriter
  • 前端面试题总结
  • 少走弯路,给Java 1~5 年程序员的建议
  • 收藏好这篇,别再只说“数据劫持”了
  • 跳前端坑前,先看看这个!!
  • 我这样减少了26.5M Java内存!
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 字符串匹配基础上
  • Linux权限管理(week1_day5)--技术流ken
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​数据链路层——流量控制可靠传输机制 ​
  • # .NET Framework中使用命名管道进行进程间通信
  • #window11设置系统变量#
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (黑马C++)L06 重载与继承
  • (一)Dubbo快速入门、介绍、使用
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .Net 4.0并行库实用性演练
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET连接数据库方式
  • .NET中GET与SET的用法
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ solr入门 ] - 利用solrJ进行检索