大屏邪修自适应

之前提到过通过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去开发就行了。

够邪门吧

相关推荐
是梦终空2 小时前
计算机源码274—基于深度学习的中医舌象智能识别与健康管理系统(源代码+数据库+12000字论文)
人工智能·python·深度学习·opencv·django·vue·springboot
涵涵(互关)13 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
jay神20 小时前
基于微信小程序课外创新实践学分认定系统
java·spring boot·小程序·vue·毕业设计
QuZhengRong1 天前
【Luck-Report】缓存
java·前端·后端·vue·excel
丷丩1 天前
工程级MVT地图瓦片服务器Web前端架构设计文档
前端·vue·gis·pinia·geoai-up
ttwuai2 天前
XYGo Admin 菜单与路由:Vue3 动态路由 + GoFrame 权限菜单的完整实现方案
前端·vue·后台框架
ttwuai2 天前
XYGo Admin 国际化实战:Vue3 中后台多语言方案详解
前端·javascript·vue.js·vue
还得是你大哥4 天前
Java互联网医院管理系统源码SpringBoot
java·spring boot·vue
会周易的程序员4 天前
aiDgeScanner:工业设备扫描与管理的一体化利器——深度解析上位机与扫描端的无缝协作
c++·物联网·typescript·electron·vue·iot·aiot