大屏邪修自适应

之前提到过通过sass函数和postcss来设置样式,使项目适应大屏,但是如果一些地方比如echats或者其他ui组件不好设置样式函数来修改样式,可以尝试下邪修写法。

因为之前甲方使用的3:2的屏,怎么都不满意,反倒是别人通过拉伸的方案满意了,那就邪一把!

javascript 复制代码
const innerWidth = ref<number>(0);
const innerHeight = ref<number>(0);
const setScreenVars = () => {
  innerWidth.value = window.innerWidth;
  innerHeight.value = window.innerHeight;
};
setScreenVars();

首先初始化获取到浏览器的宽高方便使用

javascript 复制代码
const pageTransform = computed(() => {
  return `scale(${innerWidth.value / 1920}, ${innerHeight.value / 1080})`;
});

以1920*1080为基准,通过transform让元素变形

html 复制代码
<div
    class="largeScreen"
    :style="{ transform: pageTransform }"
>
</div>

大屏的最大层容器使用:style动态样式让最大容器变形

javascript 复制代码
window.addEventListener("resize", setScreenVars);

最后通过window的监听事件,浏览器大小改变的时候重新调用获取浏览器大小的方法,innerWidth和innerHeight改变时pageTransform重新计算,div.largeScreen就会改变,这样就可以了,里面的其他元素依旧以1920*1080去开发就行了。

够邪门吧

相关推荐
汤米粥4 天前
2026年主流前端技术框架
vue·react·elementplus·tailwind css·angular‌·svelte‌·bootstrap‌
codigger4 天前
Vue nextTick 到底在等什么?一篇讲透原理与那些年踩过的坑
程序员·vue·编程·异步更新·#人工智能
咚咚咚小柒5 天前
【前端】LangChain.js学习
前端·javascript·人工智能·typescript·langchain·vue·ai编程
悟道书生7 天前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
mewowaBc7 天前
使用Pinia持久化存储实现用户认证系统
vue·pinia·用户认证系统
gc_22998 天前
使用VS Code终端创建Vue项目报错:“npm : 无法加载文件 ...\npm.ps1,因为在此系统上禁止运行脚本”
vue·vs code
小阿鑫8 天前
尤雨溪 : Vue 4 已经在规划中了!
vue·vite·vite+·程序员海军·vue4
离歌漠8 天前
《我用 Tauri 做了一个本地开发工具箱》
rust·typescript·vue
enjoy编程9 天前
playwright学习-I
typescript·vue·nodejs·1024程序员节·playwright
落花看风雪11 天前
从零开始搭建后台系统(vue3+TypeScript+Vite)01
typescript·vue·js