vue2的scale方式适配大屏

代码

js 复制代码
mounted(){
    //初始化自适应  ----在刚显示的时候就开始适配一次
    handleScreenAuto();
    //绑定自适应函数   ---防止浏览器栏变化后不再适配
    window.onresize = () => handleScreenAuto();
},
destroyed(){
    window.onresize = null;
},
methods: {
    //数据大屏自适应函数
    const handleScreenAuto = (): void => {
        const designDraftWidth = 1920;//设计稿的宽度
        const designDraftHeight = 960;//设计稿的高度
        //根据屏幕的变化适配的比例
        const scale = document.documentElement.clientWidth / document.documentElement.clientHeight < designDraftWidth / designDraftHeight ?
            (document.documentElement.clientWidth / designDraftWidth) :
            (document.documentElement.clientHeight / designDraftHeight);
        //缩放比例
        (document.querySelector('#screen') as any).style.transform = `scale(${scale}) translate(-50%)`;
    }
}
html 复制代码
<template>
    <div className="screen-wrapper">
        <div className="screen" id="screen">

        </div>
    </div>
</template>
css 复制代码
    .screen-root {
    height: 100%;
    width: 100%;

    .screen {
        display: inline-block;
        width: 1920px;
    / / 设计稿的宽度 height: 960 px;
    / / 设计稿的高度 transform-origin: 0 0;
        position: absolute;
        left: 50%;
    }
}

将上述生命周期和methods中的代码复制,然后在id为screen的div中编写数据大屏即可。

缺点:

  • 内部组件如果用了鼠标坐标点这些,会有偏移的。比如 slider滑块这些依赖 clientX 这些的。
  • 如果大屏内存在地图组件的交互,存在点错位问题
相关推荐
zoe驿鹿13 分钟前
【CI/CD】前端工程化与自动化:从“手工作坊”到“现代化工厂”的演进之路
前端·ci/cd·自动化
lupai16 分钟前
增值税发票 OCR 识别 API 新手接入指南
java·前端·ocr
reasonsummer23 分钟前
【办公类-120-01】20260812闵行区幼儿园概况表的数据统计(户籍、五类性质、优抚子女)
前端·python
宿67425 分钟前
vue3-指令和事件处理
开发语言·前端·javascript
风骏时光牛马36 分钟前
AI助手异常问题Debug排查
前端
梦想的旅途241 分钟前
企业微信API实战:Python自动化消息推送
java·前端·python·自动化·企业微信
恋猫de小郭41 分钟前
Flutter 3.47 发布,快来看看有什么更新吧
android·前端·flutter
程序员黑豆42 分钟前
Java 内存存储机制:基本数据类型 vs 引用数据类型
前端·ai编程·全栈
90后的晨仔1 小时前
uni-app 三方库与插件管理体系全解析:从原生开发者视角彻底讲透
前端
程序员爱钓鱼1 小时前
Rust 生命周期案例详解:从编译错误到真实业务场景
前端·后端·rust