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();
			});
		}
相关推荐
LawrenceLan3 分钟前
Flutter 零基础入门(二十一):Container、Padding、Margin 与装饰
开发语言·前端·flutter·dart
黎雁·泠崖9 分钟前
Java初识面向对象+类与对象+封装核心
java·开发语言
悟能不能悟11 分钟前
java controller的DTO如果有内部类,应该注意什么
java·开发语言
没有才华的Mr.L14 分钟前
【JavaSE】数组
java·开发语言
吴声子夜歌16 分钟前
Maven——pom.xml详解
xml·java·maven
rannn_11116 分钟前
【Javaweb学习|Day6】日志技术、多表查询、分页查询及优化(动态SQL)
java·后端·javaweb
967719 分钟前
初始web server的认识1---webserver的用途和工作流程
前端
七夜zippoe25 分钟前
Elasticsearch核心概念与Java客户端实战 构建高性能搜索服务
java·大数据·elasticsearch·集群·索引·分片
深念Y25 分钟前
easylive仿B站项目 后端 单体版 项目构建
java·开发语言
叫我:松哥30 分钟前
基于神经网络算法的多模态内容分析系统,采用Flask + Bootstrap + ECharts + LSTM-CNN + 注意力机制
前端·神经网络·算法·机器学习·flask·bootstrap·echarts