文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue常用的数字孪生可视化的自适应方案

2024-04-02 19:55

关注

写在前面

前面博主写过一篇文章 面试官:除了 HTTP,你还用过什么通信协议?(Websocket 在数字孪生中的应用),简述了数字孪生产品的数据更新机制,对于数字孪生产品来说,数据非常重要,孪生世界的数据呈现可以反映现实世界的真实情况,而在数据展示中,除了数据更新机制之外,还有一个非常非常重要的东西,那就是可视化表格的展现,而由于数字孪生可视化界面主要用于展示数据,因此在大部分应用场景中,它经常被放到各式各样的展示屏幕展示,可能是普通的电脑屏幕,可能是平板,也有可能是好几块屏幕组成的可视化大屏系统,那么表格的自适应便成了展示的重要衡量标准,如何完成自适应调整,将在产品体验中占据非常重要的比重!

各自适应方案对比

百分比自适应方案

按百分比实现自适应应该是最最简单的方式了,不需要额外增加如何配置,即可实现,我们来做个试验测试一下按百分比实现自适应的效果

<template>
  <div class="box">
    <div class="inner-box">
    </div>
  </div>
</template>
<style lang='scss' scope>
  .box {
    width: 100vw;
    height: 100vh;
    .inner-box {
      width: 20%;
      height: 20%;
      background: cadetblue;
    }
  }
</style>

我们先定义一个外部容器 box ,然后在 box 里创建一个用于自适应的长方形 inner-box,然后将自适应长方形宽和高都设置为20%

我们可以看到,当我们将其宽高都设置为百分比时,window 的宽、高变化时,长方形的宽和高也将随着发生变化,可以实现初步的自适应。

而当我们将这样一个自适应方案应用到数字孪生可视化界面上时,我们会发现,效果有点差强人意

通过我们模拟占位的表格可以很明显看出,当我们对窗口进行横向和竖向的缩放时,左右边的表格是进行了自适应的,而由于在这个自适应方案中宽和高并没有什么联系,导致了宽高各自自适应,最终导致了表格宽高比例严重失衡,展现得非常 ugly,所以,这个方案在数字孪生可视化这个应用场景中并不适合。

Rem + Resize

第二个方案采用的是 rem,而 rem 的原理是根据根元素 fontsize 来计算 rem 的单位长度,那么我们就可以通过监听 window 的 resize,动态修改 fontsize,进而影响 rem,最终达到自适应的效果,下面我们做个测试

// resize.js
const scaleListener = () => {
  window.addEventListener('resize', resize)
  console.log('scaleListening......')
}
const resize = () => {
  // 与原来 1080 的比值
  let scale = window.innerHeight / 1080
  document.documentElement.style.fontSize = `${16 * scale}px` 
  console.log('resize')
}
export {
  scaleListener
}
// APP.vue
<script>
import { scaleListener } from '../src/components/resize/resize';
export default {
  mounted() {
    scaleListener()
  },
}
</script>

首先我们定义了一个 resize 函数用于启动监听 window 的resize 事件,当 window 发生 resize 时,通过与事先定义的标准屏幕高度 1080 对比,计算比值,更新事先定义的标准 fontsize 16px。

这个时候,当我们在组件中使用 rem 作为单位时,随着 window 的 resize,rem 将被重置,元素也将被重置,值得注意的是,这个时候,由于表格的宽高采用的都是 rem ,因此在触发 resize 时,表格的宽高比例不会发生变化,也就达到了数字孪生可视化产品所应具有的自适应标准了

可能大家会有疑问,为啥是监听 height 而不是 width,主要的原因是数字孪生可视化界面一般表格都处于左右两边,宽度变化对于表格并不会造成大的影响,只要表格做到靠左、靠右显示即可,而高度才是影响表格的重要因素,当高度变化时,表格如果不进行缩放,表格的内容将会无法完整显示。

以上就是vue常用的数字孪生可视化的自适应方案的详细内容,更多关于vue数字孪生可视化自适应的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯