大屏可视化项目
如何找素材
[TOC]
方方的最终成果展示
https://frankfang.gitee.io/test-20210000001/#/
初始代码:https://github.com/FrankFang/WgGRGvfAVyp5
最终代码:https://github.com/FrankFang/U6rda2laBInU
echarts theme builder: https://echarts.apache.org/en/theme-builder.html
著名的设计网站
Dribble,站酷
花时间找下素材就可以了。
关键字
大屏, big screen, dashboard
工具
取色工具
尺寸工具
如何适配屏幕
算法


Wp为页面有效宽度,Hp为页面有效高度
以上公式解读:
如果屏幕宽度大于16:9, 即屏幕很宽,屏幕宽度就是屏幕高度乘以16:9,比如说高度是900,那么宽度就是1600,因此高度就是宽度除以16:9
如果屏幕宽度小于16:9,即屏幕很窄,那么宽度就是屏幕的宽度
如果屏幕很宽,页面左右居中,如果屏幕很高,页面就上下居中,四周留白即可
然后在head里用JS设置1rem = Wp / 100(下文中会用到)
Rem计算公式
用rem
假设某div在设计稿中长100px,设计稿宽度1920px
那么该div在页面中长为100/1920 x 100rem
最后可以写一个px()函数来计算100px对应的rem
实践: 大屏适配
用ps截取工具可以轻松测量宽高像素
实践: 用rem代替像素
实践: 制作header
在home.tsx下
src文件夹下创建一个image文件夹,然后把header.png拖进去,文件在https://github.com/FrankFang/F4rp82vr0tYn/tree/master/src/images
然后在home.tsx引入图片,此时会报错
需要在src下创建一个custom.d.ts文件,输入以下
在home.scss文件下,添加background-size:cover,这样可以让图片完全盖住背景(无论页面大小如何转换)
使用Flex和Grid布局
技术总结:
在父元素上加display:flex 和flex-direction:column;
在子元素上加flex:1
即可让子元素的高度占满父元素
添加空隙
制作背景和边框
原始图片的边框是四角发光,使用box-shadow可以达到这种效果,box-shadow可以叠加使用如下面的代码
无意中看到一个很好看的配色方案


第一个图表
引入echarts
调用官网的例子
如何布局
使用Grid
理由1: 大屏一般是可控的,可以装Chrome
理由2: Grid布局太方便了,行,列,间隙都可控
使用echarts
优点
开发效率高
缺点
可定制性一般
实时更新数据
用setTimeout或者setInterval,让数据动起来
用法
重新设置echart的option即可
测试并修复bug
认真对待
如果你把这个项目写到自己的简历,请按照方方的教程做完之后,自己再重新做一次,然后换个皮肤防止撞车,并仔细测试是否有bug,有就修复或隐藏它
部署
自己开发用
给别人/面试官看的
打包完成后,会出现一个dist目录, 里面就两个东西,一个assets目录和一个index.html
方方这边推荐用gitee 码云
gitee的pages,直接启动即可,选择https
简历示例参考
技术栈:React、ReactRouter、Echarts
这个项目是我在学习前端可视化与 echarts 时,仿照方应杭的开源项目制作而成的。 页面布局使用了 Grid 和 Flex 布局,为了适应所有屏幕,我使用了动态 rem 方案,具体思路见我的博客(这里应给出链接)。 项目中包含的图例有柱形图、折线图、饼图、地图和表格等,并且所有图例都可以实时更新数据并辅以动画交互。 通过这个项目,我掌握了大屏可视化项目的制作技巧。
最后更新于
这有帮助吗?