ECharts项目-可视化展板随想

ECharts项目-可视化展板

1. 用到的技术栈

  • 基于flexible.js + rem智能大屏适配
  • flex布局
  • less - 使用easy less插件直接将less转换为css引入
  • 基于Echarts数据可视化展示
  • Echarts柱状图、饼状图
  • Echarts地图

2. 适配方案 - flexible.js + rem

2.1 flexible.js

flexible.js是专门为了解决不同设备间显示适配方案的,根据可视区大小,默认除以10,也就是可视区的1/10就是1rem的大小,设置为font-size,使得每个使用rem单位的元素都可以自动适应屏幕的大小。

因为我们的项目希望只在pc端进行显示,按照默认十份进行划分1rem有点大了,修改flexible.js改成24等分。

2.2 px to rem插件

为了省掉换算,使用插件px to rem,但是要将设置里的font-size改成我们的1920/24=80

3. 布局

3.1 header部分

里面用一个h1标题居中显示,一个时间模块靠右侧定位。

3.2 主体部分

给主体大盒子设置display:flex,提供flex布局,其中三个小盒子分别占比3:5:3。

准备一个公共的面板样式panel,设置公共的样式,其中上下两个角的样式按照伪元素before、after的border进行设计;下面两个角选择在panel里加个定位的盒子再继续使用这个新底部盒子的伪元素的border加两个角。每个panel里分为一个h2标题做图表的标题,一个chart图表部分。

中间的地球bg图片想要定位在水平垂直居中的位置:

position: absolute;

left: 50%;

top: 50%;

transform: translate(-50%, -50%);

在地球bg图片上覆盖一个可以做不停旋转动画的图片,利用index压住bg图片。

4. 交互

4.1 header部分

header中的时间模块的innerHTML显示为当前的时间代码:

var t = null;

t = setTimeout(time, 1000);//定时器:每1000ms执行time函数

function time() {

​ clearTimeout(t);

​ dt = new Date();

​ var y = dt.getFullYear();

​ var m = dt.getMonth() + 1;

​ var d = dt.getDate();

​ var h = dt.getHours();

​ var min = dt.getMinutes();

​ var s = dt.getSeconds();

​ document.querySelector(“.showTime”).innerHTML = “当前时间:” + y + “年” + m + “月” + d + “日-“ + h + “时” + min + “分” + s + “秒”;

​ t = setTimeout(time, 1000);

}

4.2 主体部分

因为在主体部分我们已经准备好了很多图表的容器,但是在ECharts的使用过程中需要获取并且给每一个图表做不一样的配置,为了避免这样带来的变量污染,减少命名冲突,采取立即执行函数的写法,这样里面的变量均为局部变量

5. 字体样式

在中间column的数字展示模块,引用图标字体electonicFont美化数字展示方式。

首先,要在css或者less最上面声明字体@font-face!然后就可以在li中使用了,将font-family属性值设置为‘electonicFont’。

6. ECharts使用步骤总结

  • 下载并引用echarts.js

  • 为需要用Echarts的图表准备一个定义宽高的DOM容器

  • 通过echarts.init方法初始化一个echarts实例

  • 通过setOption方法指定配置项和相关数据使其生效

    其中配置项和数据是使用的重难点。

7. ECharts配置

  • tooltip: 提示框

  • legend:图例。若series中有name值,则legend的data可以省略。

  • grid:网格

    【注意:DOM容器时整个图表的大小,而grid是只有最中间的大小】

    DOM v.s. grid

  • series:系列图表,决定显示哪种类型的图表。这是数组的形式,里面包含了n个对象,每一个对象对应一条线。

  • color: 设置线条的颜色,注意也是数组的形式和series对应。

8. ECharts随着屏幕的自适应

window.addEventListener(“resize”, function() {
myChart.resize();
});


最后做出来的效果belike!!!

final version



ECharts项目-可视化展板随想
http://example.com/2023/06/08/ECharts项目-可视化展板随想/
Author
John Doe
Posted on
June 8, 2023
Licensed under