uniapp 中使用 rem 以及改变窗口动态刷新页面

注意:页面元素需要全部使用 rem 作为单位。

1.使用 uniapp 中的页面属性配置节点,page-meta,注意放在根元素的位置,也就是 template下面的第一层

复制代码
<template>
	<page-meta :root-font-size="fontsize+'px'" user-scalable=no viewport-fit=cover style="display: block;"></page-meta>
    // 下面是要显示的页面
	<view class="bigStyle">
        ......
	</view>
</template>

2.获取屏幕大小以及监听窗口改变事件

复制代码
        onLoad() {
			let srceenNunber = 409.6; // 根据设计稿计算的比例 设计稿宽度/10
			let that = this;

			//窗体改变大小触发事件
			uni.onWindowResize((res) => {
				console.log('变化后的窗口宽度=', res.size.windowWidth);
				that.fontsize = parseFloat(res.size.windowWidth) / srceenNunber;

				// 重新渲染页面
				uni.$emit('changeRootFontSize', that.fontsize);
			})

			//打开获取屏幕大小
			uni.getSystemInfo({
				success(res) {
					that.fontsize = res.screenWidth / srceenNunber;
					console.log('字体大小:', that.fontsize);

					// 重新渲染页面
					uni.$emit('changeRootFontSize', that.fontsize);
				}
			})
		},

3. app.vue 页面触发重新渲染页面

复制代码
        created() {
			uni.$on('changeRootFontSize', (newFontSize) => {
				document.documentElement.style.fontSize = newFontSize + 'px';
				this.$forceUpdate();
			});
		}
相关推荐
Rain的Java大神之路2 分钟前
面了 50 个候选人,90% 都挂在 LeetCode 3 无重复字符的最长子串:滑动窗口的 5 个致命坑
java·后端·leetcode
计算机魔术师3 分钟前
AI公司把「灾难性风险」写进招股书?Anthropic这5处反常
前端
西凉的悲伤3 分钟前
Jsoup 库 HTML 解析详解
java·前端·html·jsoup
niucloud-admin6 分钟前
NIUCLOUD PHP SAAS上门家政使用文档
前端·人工智能·ai编程
十碗饭吃不饱15 分钟前
Apache POI 踩坑:setFontFamily 二次设置字体不生效、样式残留问题深度解析
java·word·apache
不一样的故事12618 分钟前
Prompt 工程(Prompt Engineering)
前端·人工智能·python
我命由我1234519 分钟前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
ZoeLandia22 分钟前
React08:自定义 Hook
开发语言·前端·react.js·typescript
2601_9499706923 分钟前
msgpackr 跨端三方库仓颉适配全流程
前端·javascript·flutter
Software攻城狮33 分钟前
【uniapp和普通web 端开发的区别】
前端·uni-app·notepad++