当前位置: 首页 > 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(被碰撞对象)
http://www.lryc.cn/news/433874.html

相关文章:

  • Linux运维排查常见故障_在tmp目录下有大量包含picture_ 的临时文件,每天晚上2 30需要对一天前的文件进行
  • 基于SpringBoot的智能制造云平台系统的设计与实现计算机毕设
  • 论文翻译:arxiv-2024 Benchmarking Benchmark Leakage in Large Language Models
  • 十二、新版UI
  • Path系统环境变量和CLASSPATH环境变量
  • 自然语言处理系列六十六》对话机器人项目实战》对话机器人原理与介绍
  • 解码数字化转型顶层规划(附236页PPT:xx企业数字化转型项目顶层规划方案)
  • 无需温度修正,测值准确可靠 GEO ACxxxx型振弦式锚索测力计
  • shell脚本【一、 特殊变量/子串/特殊扩展变量/父子shell/内置命令、外置命令】
  • 服务器禁用远程(22)
  • Docker 进阶构建:镜像、网络与仓库管理
  • opencv学习:图像轮廓识别及代码实现
  • 存储课程学习笔记2_借助内核插入一个文件系统,用文件夹下测试文件系统(mount文件系统到目录下是入口)
  • chunk-vendors.js 文件过大导致页面加载缓慢解决方案
  • 【Postgresql】地理空间数据的存储与查询,查询效率优化策略,数据类型与查询速度的影响
  • 设计模式应用
  • Android开机启动流程
  • 数据结构基本知识
  • 浙大数据结构:02-线性结构4 Pop Sequence
  • java开发,记录一些注解和架构 pojo、entity、respository
  • MatLab基础学习01
  • 第 5 章多视图几何
  • IOS 开发者账号注册流程
  • netty之NioEventLoop和NioEventLoopGroup
  • 睿考网:中级经济师考试题型有哪些?
  • kubernetes集群部署Confluence 7.2.0+mysql 5.7(自测有效)
  • Vmware ubuntu22.04 虚拟机 连接Windows主机虚拟串口
  • Postgresql碎片整理
  • 【最新华为OD机试E卷-支持在线评测】字母组合(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 力扣493.翻转对