两个大屏可视化案例的布局与实现

近期分别使用了 React 和 Vue 完成了两个大屏可视化案例,经历了设计师和产品经理的各种 “指指点点” ,也算是对可视化大屏项目有了一点点小的经验,对于两个技术栈写组件也有一点小心得,趁着周末总结一下。

大屏效果图1

大屏效果图2

可视化大屏

无论是在科幻电影还是在真实世界里,可视化大屏都是非常常见的一种表现手法。之前在昆明公安局出差,也亲眼看到了 湄公河惨案 的真实指挥中心和他的大屏,屏幕的宽度大约有两层楼高。

可视化大屏的特性

可视化大屏, 归根到底还是运用的可视化技术 ,只不过展现的屏幕比起笔记本和显示器大了很多。相比于传统的桌面级可视化运用,大屏可视化的特性有:

  1. 屏幕巨大,用户通常离屏幕比较远,文字表达出来的信息需要足够清楚,通常要在字体和颜色上做文章。
  2. 弱化交互,基于键盘和鼠标的交互方式很少,更多时候系统自己做出响应,而不是让人工介入。
  3. 视觉冲击力强,设计一般都是以深色为底色,一来科技感十足,二来可以配合突出的主体动画和强设计感的元素。
  4. 场景化,一块大屏通常用来展示一类场景,场景主要由图表构成,后台管理系统那套表单通常不会出现在大屏。
  5. 动画更重要了,用动画表现出来的数据,通常是大屏项目中 最迷人 的地方。说动画是大屏项目的 灵魂 也不为过。案例一的那条红线被设计师称为 “画龙点睛”之笔 。

Vue和React可视化组件的实现

不作为一个整体看大屏项目,其实还是一个个小的组件。在实现两个项目的过程中,由于上海和南京两地团队的 技术栈差异 ,使用了Vue和React两种框架。于是我只能看了一晚上Vue之后就上手去写Vue的组件。两个大屏案例之间有共同的组件,不需要整个重写,只需要改写即可;改写的过程中,我也比较深刻体会到了两者的不同。

由于宽高的不确定性,做组件的第一步是 获取组件在大屏上的宽高 。

  • React获取宽高的方式 
    React获取宽高的方式比较标准,分为三步:在render的时候ref,在did的时候取值,在构造方法create。在生命周期函数的钩子里实现相应方法即可。
  • Vue获取宽高的方式 
    Vue似乎 更自由 一些,直接在mouted钩子里就可以拿到相应组件的clientWidth。

宽高确定了,组件内部的元素和字体大小要进行相应比例的放缩,达到自适应的效果。在我的案例里使用的是d3和bizchart来完成图的绘制,d3中我大量使用了linearScale进行插值计算,而bizChart就更为简单,框架帮你完成了自适应。

动画部分通常会涉及一些元素的增加,有增加就不能缺少释放,这是内存管理的一个铁律。在完成第一个大屏的过程中,为了完成粒子放射的效果,我增加了很多粒子,起先没有将他们释放掉,只是从视觉上藏了起来,这造成了系统一段时间后会很卡。

在做组件的过程中,还需注意组件内部的样式 不能影响外部 。由于粗心,我就出现了这样的一个小错误,楠哥说如果在其他公司是要扣KPI的。

大屏的自动布局和宽高自适应

可视化大屏的布局部分也是一个重要的部分。在我们的案例中,使用了纯css3的 vw、vh 实现自适应。

视口单位

视口

在业界,极为推崇的一种理论是 Peter-Paul Koch (江湖人称“PPK大神”)提出的关于视口的解释——在桌面端,视口指的是在桌面端,指的是浏览器的可视区域;而在移动端较为复杂,它涉及到三个视口:分别是 Layout Viewport(布局视口)、 Visual Viewport(视觉视口)、Ideal Viewport。( 大屏一般是桌面端 )

视口单位

根据CSS3规范,视口单位主要包括4个:

  1. vw : 1vw 等于视口宽度的1%
  2. vh : 1vh 等于视口高度的1%
  3. vmin : 选取 vw 和 vh 中最小的那个
  4. vmax : 选取 vw 和 vh 中最大的那个

视口单位区别于%单位,视口单位是依赖于视口的尺寸,根据视口尺寸的百分比来定义的;而%单位则是依赖于元素的祖先元素。

用视口单位度量,视口宽度为100vw,高度为100vh,相当于将宽高分别分成了100份。

利用视口单位适配页面

利用视口单位适配页面通常有两种方法,做法一仅使用vw作为CSS单位,使用Sass函数编译。做法二搭配vw和rem,布局更优化。做法二是更为优秀的做法,我们也采用了这种方法,两点原因:

  1. 用户视觉体验更好,增加了最大最小宽度的限制;
  2. 如果选择主流的rem弹性布局方式作为项目开发的适配页面方法,那么做法二更适合于后期项目从 rem 单位过渡到 vw 单位。

结束语

由于是公司的项目,不同于我个人的项目可以开源,本文更多的讲的是  上的东西,术上的东西并没有过多涉及,甚至没有一行样例代码。

真实的效果图

最后还是希望本文能给大家带来一些启发和收获。

原文地址:https://www.cnblogs.com/telwanggs/p/10971413.html

时间: 2024-08-28 23:29:26

两个大屏可视化案例的布局与实现的相关文章

《大屏可视化数据》该怎么设计?

前言:数据可视化是什么?可视化数据有哪些主要特征?为什么要使用大屏展示可视化数据?数据可视化是综合运用计算机图形学.图像.人机交互等,将采集.清洗.转换.处理过的符合标准和规范的数据映射为可识别的图形.图像.动画甚至视频,并允许用户与数据可视化进行交互和分析.使用数据可视化可以丰富内容,引人注意,调动人的情绪.引发人的共鸣,传递文化和价值.可视化数据的最主要目三个特征:新颖而有趣.充实而高效.美感且悦.以大屏作为可视化数据的主要载体,其原因在于面积大.可展示信息多.便于关键信息的共享讨论及决策,

ECharts大屏可视化【词云,堆积柱状图,折线图,南丁格尔玫瑰图】

一.简介 参考ECharts快速入门:https://www.cnblogs.com/yszd/p/11166048.html 二.代码实现 1 <!DOCTYPE html> 2 <html> 3 <head> 4    <meta charset="UTF-8"> 5    <title>ECharts入门</title> 6 </head> 7 <body> 8    <!--

如何做大屏数据可视化设计?

文章结构及思维导图: 一.基础概念 1. 什么是数据可视化 把相对复杂.抽象的数据通过可视的方式以人们更易理解的形式展示出来的一系列手段叫做数据可视化,数据可视化是为了更形象地表达数据内在的信息和规律,促进数据信息的传播和应用. 在当前新技术支持下,数据可视化除了"可视",还可有可交流.可互动的特点.数据可视化的本质是数据空间到图形空间的映射,是抽象数据的具象表达. 数据可视化作品<launchit> 作者:Shane Mielke 作者写了本书,地图上显示了世界各地读者的

2019主流的数据可视化大屏工具有哪些

数据可视化大屏已经是公认的最直观,最有效的信息传递方式,以前用Echarts等第三方组件做大屏开发的,会发现:尽管它们提供了许多的图表元件和JS代码,但是由于每个用户的需求都不一样,大屏开发仍然需要改很多代码,耗费不少时间.如今,更加主流的,是一些实用又好看的数据可视化大屏工具,本文就来详细介绍. 1.FineBI 目前是国内市场占有率第一的自助式BI工具,也是一款成熟的数据分析产品.内置丰富图表,不需要代码调用,可直接拖拽生成.可用于业务数据的快速分析,制作dashboard,也可构建可视化大

flex布局构建大屏框架并支持翻页动画、滚动表格功能

本文将利用flex属性构建大屏可视化界面.界面主要分标题栏.工具栏.数据可视化窗口.其中,翻页动画以及滚动表格功能分别分布在数据可视化界面两侧. 鼠标点击标题,可看到左侧窗口翻转动画: 整体布局效果图: 滚动列表效果图及核心代码: var myH = $(".tableBoy").height() + 10;//获取容器高度 确定可视区域 $(".tableBoy").css({ 'height': myH + "px", "overf

大屏设计系列之五——大屏设计语言分析

如果您想订阅本博客内容,每天自动发到您的邮箱中,请点这里 作者:蓝蓝 蓝蓝设计经常会接到大屏设计的项目,比如中国移动互联网监控大屏可视化设计及开发.太极集团承接的中央台应急指挥中心大屏可视化设计.交大思源承接的北京地铁轨道批挥中心大屏可视化设计.数码视讯展厅大屏可视化设计,在积累了一定经验的同时,也在不断的学习和丰富关于大屏设计的特点及数据可视化的表达方式. 数据可视化过滤了非常多的冗余信息,浓缩了最重要的信息,它的魅力就在于将枯燥的数据组织在一起,把最需要的那些编辑成一个故事.目前大数据那么流

还在用代码苦苦调试大屏?用这个神器1小时搞定

最近和一位在政府交通部门工作的朋友聊天,谈到大数据应用,他们领导近几年对公共交通管理的数据信息化建设非常重视,特别是一些交通大屏监控看板的应用.此前在面对这类数据大屏监控的可视化展示需求时,一般会由外包项目方通过代码等形式进行开发,然后经过美工不断优化调整,最终再交付到相关部门进行评审和上线. 通过这种方式,虽然一些很细节的样式需求也能够不断进行代码调优,但是带来的问题就是大屏看板从需求收集到开始开发,再到最终上线的周期太长了,一般来说一个大屏前前后后至少要半个多月时间才能开发完成,领导对当前冗

日志易 Galaxee ,如同银河系一般绚丽多彩的大屏应用

随着企业业务的不断扩展,业务线越来越多,对业务数据的监控越来越重要,但各个业务系统间的数据往往独立.分散,对数据进行价值挖掘的难度较大.借助一个数据平台将数据进行汇集处理,并能根据企业运营管理需求将数据进行个性化的可视化展现,已成为各大企业的刚需.相比于单一的图表与静态仪表盘,日志易 Galaxee 大屏可视化应用致力于用更生动.友好的形式,即时呈现隐藏在瞬息万变且庞杂的数据背后的业务洞察.无论在能源.金融还是互联网领域,通过交互式实时数据可视化视屏墙来帮助业务人员发现.诊断业务问题,越来越成为

Qt编写数据可视化大屏界面电子看板3-新建布局

一.前言 能够新建布局,也是数据可视化大屏界面电子看板系统中的必备功能之一,新建布局这样的功能一般做到右键菜单中,单击新建布局菜单,弹出输入框要求输入新的布局的名称,为了更符合国情,直接支持中文名称,保存成配置文件直接中文名称命名,这样方便用户理解,Qt5以来对乱码的问题解决的就比较好了,不像Qt4时代稍不留神就乱码了,Qt5只要保证源码文件utf-8编码基本上就很少遇到乱码问题了.新建布局必须要有个默认的窗体排列,Qt中的dock窗体,默认布局会以窗体的sizehint作为大小参照标准,也不一