我们的项目中有关于数据仓库和挖掘,用户要求UI的界面需要仪表盘,我网上找了下,没有发现免费的HTML仪表盘,饼图啥图表的确很多,那就没有办法了,我和同事自己做了一个仪表盘,结果如下。

之后我们就来讨论下这个简单的仪表盘是怎么做的。我们先大致有一个想法,设定一个宽高2:1的canvas,仪表盘的半径就是canvas的高度,仪表盘需要的数据有上面分几个区域(一般是低中高三个区域,为了测试我们准备了四个区域),刻度线和文字,指针,和指针指向的值。
首先第一步自然是canvas的声明
<body>
<div>
<canvas id="board" width="800" height="600">
</canvas>
</div>
</body>
</html>
之后的工作都在javascript中完成,我们需要定义一些对象
//仪表盘面板
var panel = function(id, option) {
this.canvas = document.getElementById(id); //获取canvas元素
this.cvs = this.canvas.getContext("2d"); //得到绘制上下文
this.width = this.canvas.width; //对象宽度
this.height = this.canvas.height; //对象高度
this.level = option.level;
this.outsideStyle = option.outsideS

在项目中,为满足用户对数据仓库展示的仪表盘需求,由于找不到合适的免费HTML5仪表盘,作者与同事决定自行制作。他们创建了一个2:1宽高的canvas,设定仪表盘半径,并规划了数据区域、刻度线、文字、指针和值。通过canvas的声明和画半圆的方法,利用translate和rotate实现了仪表盘的各个部分。首先画出红色的180°半圆,然后通过旋转角度依次覆盖不同颜色,以此构建仪表盘的多个区域。最后,通过类似方法绘制刻度线,完成了自定义的HTML5仪表盘。
最低0.47元/天 解锁文章
536





