vue数据大屏自动适配,scale

应用场景:数据屏自动适配屏幕大小

原理:transform的属性scale将盒子整体等比放大缩小

废话不多说,直接上代码!

<template>
    <div class="container">
        <!-- 数据大屏展示内容区域 -->
        <div class="screen" ref="screen">
        </div>
    </div>
</template>

<script setup lang='ts'>
import { ref,onMounted } from 'vue';
//获取数据大屏展示内容盒子的DOM元素
let screen = ref();
onMounted(() => {
    screen.value.style.transform = `scale(${getScale()}) translate(-50%,-50%)`
});
//定义大屏缩放比例
function getScale(w = 1920, h = 1080) {
    const ww = window.innerWidth / w;
    const wh = window.innerHeight / h;
    return ww < wh ? ww : wh;
}
//监听视口变化
window.onresize = () => {
    screen.value.style.transform = `scale(${getScale()}) translate(-50%,-50%)`
}

</script>

<style scoped lang='less'>
.container {
    width: 100vw;
    height: 100vh;
    background: url(./images/bg.png) no-repeat;
    background-size: cover;

    .screen {
        position: fixed;
        width: 1920px;
        height: 1080px;
        left: 50%;
        top: 50%;
        transform-origin: left top;
        background-color: red;
    }
}
</style>

getScale(w = 1920, h = 1080)的宽高为你要设计的数据大屏宽高,这时你就会发现页面就是响应式的了,一次性解决所有问题,减少vh,vw适配的计算烦劳。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue数据可视化大,可以采用CSS3的缩放属性进行等比缩放实现。阿里DataV和腾讯云图等大厂的数据可视化项目都采用了这种方案。在实际项目中,可以在mounted生命周期中监听窗口的变化,使用window.addEventListener('resize')来触发缩放操作。\[1\]\[2\] 在进行大之前,需要了解幕的比例。常见的幕比例有16:9,如1920*1080(1080P)、2k、4k等。在确定了实际幕比例后,可以选择一个设计稿尺寸进行设计,并严格按照设计稿的像素进行前端开发。下列应方案可以应同比例下的所有分辨率幕。\[3\] 综上所述,对于Vue数据可视化大,可以使用CSS3的缩放属性进行等比缩放,并在mounted生命周期中监听窗口变化进行缩放操作。在设计阶段需要确定实际幕比例,并按照设计稿的像素进行前端开发。 #### 引用[.reference_title] - *1* *3* [vue可视化自应完美方案](https://blog.csdn.net/u013180541/article/details/127302298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue 数据可视化大](https://blog.csdn.net/qq_38427709/article/details/116857143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值