Vue3 大屏适配组件(Scale / Rem 双方案一键切换)
‍ 写在开头点赞 收藏 学会一键切换「整体 Scale 缩放」「Rem 等分适配」窗口自动监听 resize适配设计稿 1920*1080Vue3 全局直接引入用一、新建组件 ScreenAdapter.vuetemplatedivclassscreen-adapter:class{ scale-mode: type scale }!-- 大屏所有内容插槽 --slot //div/templatescript setupimport{onMounted, onUnmounted}fromvue;const propsdefineProps({// 适配模式scale / rem type:{type: String, default:scale, // 默认用不变形的scale validator: val[scale,rem].includes(val)}, // 设计稿宽高 designWidth:{type: Number, default:1920}, designHeight:{type: Number, default:1080}});letresizeFnnull;//1. Scale 整体缩放适配functioninitScale(){const wrapdocument.querySelector(.screen-adapter);if(!wrap)return;const clientWdocument.documentElement.clientWidth;const clientHdocument.documentElement.clientHeight;const scaleWclientW / props.designWidth;const scaleHclientH / props.designHeight;const scaleMath.min(scaleW, scaleH);wrap.style.transformtranslate(-50%, -50%)scale(${scale});}//2. Rem 等分适配 设计稿px直接写remfunctioninitRem(){const clientWdocument.documentElement.clientWidth;// 把屏幕分成100份 1rem1%屏幕宽 document.documentElement.style.fontSizeclientW /100px;}// 初始化适配functionadapterInit(){if(props.typescale){initScale();}else{initRem();}}onMounted((){adapterInit();resizeFnadapterInit;window.addEventListener(resize, resizeFn);});onUnmounted((){window.removeEventListener(resize, resizeFn);});/scriptstyle scopedhtml, body{margin:0;height:100%;overflow: hidden;}.screen-adapter{position: fixed;left:50%;top:50%;transform-origin:00;}/* Scale模式固定画布大小 */ .scale-mode{width: 1920px;height: 1080px;}/style二、页面中使用1. 用 Scale 模式推荐交付、地图大屏、不变形template!-- 只用包一层内部全部按1920*1080写px即可 --ScreenAdaptertypescale!-- 你的大屏页面内容 --divclasstitle智慧公路大屏/div/ScreenAdapter/templatescript setupimportScreenAdapter from/components/ScreenAdapter.vue;/scriptstyle.title{/* 直接写px不用任何换算 */ font-size: 36px;width: 400px;height: 80px;line-height: 80px;text-align: center;}/style2. 切换 Rem 模式内部项目、铺满全屏ScreenAdaptertyperem内部大屏内容/ScreenAdapterRem 用法规则设计稿多少 px直接写多少 rem设计稿 200px → width: 200rem字体 28px → font-size: 28rem不用计算、不用除以任何数。三、两种模式使用场景记住type“scale”对外交付、政府大屏、Mapbox/L7/GIS 地图优点不变形、像素级还原、适配所有屏写法全部写 pxtype“rem”内部后台、运维大屏、工期紧优点全屏无留白、开发快写法设计稿 px 直接换成 rem四、关键注意点Scale 模式下所有弹窗、ECharts、地图都要包在插槽里面不要单独挂 body不需要再写任何额外适配 JS组件已经封装好监听 resize以后所有大屏页面直接套这个组件改个 type 就能切换适配方案如果对您有所帮助欢迎您点个关注我会定时更新技术文档大家一起讨论学习一起进步。

相关新闻

以智能制造为导向的数字孪生工厂构建方法与应用

以智能制造为导向的数字孪生工厂构建方法与应用

摘要随着工业 4.0 与智能制造战略的深化推进,数字孪生已成为制造工厂实现数字化转型、提升生产柔性与运营效率的核心技术路径。本文从智能制造的实际业务需求出发,系统梳理数字孪生工厂的五层核心技术架构,详细拆解从需求定义到落地应用的全流…

2026/7/22 5:28:40阅读更多 →
视频编码与特效合成:电影预告片制作技术全解析

视频编码与特效合成:电影预告片制作技术全解析

这次我们来看一个电影项目相关的技术话题——《有虎出没》预告片的制作与传播分析。作为FIRST青年电影展主竞赛入围作品,这部影片的预告片制作涉及视频剪辑、特效处理、色彩校正等多个技术环节,对于从事影视制作和技术研究的朋友来说,值得关注…

2026/7/22 5:28:40阅读更多 →
C++数值积分与插值技术:从原理到工程实现详解

C++数值积分与插值技术:从原理到工程实现详解

1. 项目概述:为什么数值计算是C工程师的必修课?如果你是一名C开发者,无论是从事游戏引擎、量化金融、科学计算还是工业仿真,迟早会遇到一个绕不开的坎:如何让计算机高效、准确地处理那些无法用简单公式表达的复杂函数&…

2026/7/22 5:28:40阅读更多 →
C++大型项目头文件管理:从万能头文件到精准依赖的实战优化

C++大型项目头文件管理:从万能头文件到精准依赖的实战优化

1. 项目概述:万能头文件,是“神兵利器”还是“甜蜜陷阱”? 在任何一个有一定规模的C项目里,尤其是那些动辄几十万、上百万行代码的工程,头文件的管理和编译速度绝对是让开发者又爱又恨的话题。你肯定经历过这样的场景&…

2026/7/22 6:21:00阅读更多 →
2026年桌面音频技术变革与8项效率提升方案

2026年桌面音频技术变革与8项效率提升方案

1. 2026年桌面音频技术的变革背景过去三年里,桌面音频技术正在经历从"够用就好"到"专业级平民化"的转型。我最近为三个音乐工作室升级设备时发现,传统需要数万元专业声卡才能实现的功能,现在用2000元左右的消费级设备配合…

2026/7/22 6:21:00阅读更多 →
“智慧家园”环保宣传微信小程序

“智慧家园”环保宣传微信小程序

智慧家园环保宣传微信小程序的选题背景随着城市化进程加快和人口增长,环境问题日益严峻,包括空气污染、水资源短缺、垃圾围城等。公众环保意识虽有提升,但缺乏便捷的参与渠道和系统的知识获取方式。微信小程序凭借其轻量化、高普及率和强社交…

2026/7/22 6:21:00阅读更多 →
嵌入式MPU内存保护单元:原理、配置与故障排查实战

嵌入式MPU内存保护单元:原理、配置与故障排查实战

1. MPU在嵌入式系统中的核心价值与设计哲学在嵌入式系统开发,尤其是汽车电子、工业控制这类对可靠性要求极高的领域,系统崩溃往往不是由复杂的算法错误直接导致,而是源于一些看似不起眼的内存访问越界。一个失控的指针、一个错误的任务栈溢出…

2026/7/22 6:21:00阅读更多 →
C++实战:从零实现Windows桌面截图工具,掌握GDI核心API与位图处理

C++实战:从零实现Windows桌面截图工具,掌握GDI核心API与位图处理

1. 项目概述:为什么从桌面抓图开始学C?如果你刚开始接触C,或者已经学了一段时间语法,正愁找不到一个能串联起多个知识点的实战项目,那么“桌面抓图”绝对是一个绝佳的起点。这听起来像是一个简单的功能——不就是截个屏…

2026/7/22 6:21:00阅读更多 →
武汉高薪技术岗位分析与求职指南

武汉高薪技术岗位分析与求职指南

1. 武汉就业市场现状与机遇分析武汉作为中部地区核心城市,近年来经济发展势头强劲。光电子、生物医药、汽车制造等支柱产业持续扩张,带动了人才需求的快速增长。从近期企业发布的招聘信息来看,武汉就业市场呈现出几个显著特征:首先…

2026/7/22 6:19:00阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →