基于EChars仪表盘创建时钟

一、EChars学习官网:http://echarts.baidu.com/

二、具体实现js脚本:

function clock(id){

// 路径配置

require.config( {

paths : {

echarts : ‘js/build/dist‘

}

});

//画图

require( [ ‘echarts‘, ‘echarts/chart/gauge‘ ],//仪表盘需要的文件

function(ec) {

// 基于准备好的dom,初始化echarts图表

var myChart = ec.init(document.getElementById(id));

var option={

series:[

//时针和表盘绘制

{

name:‘时‘,

type:‘gauge‘,

//表盘最小值

min:0,

//表盘最大值

max:12,

//表盘分割数

splitNumber:12,

//圆心位置

center:[‘50%‘,‘50%‘],

//半径

radius:100,

//指针起始角度

startAngle:90,

//指针结束角度

endAngle:-270,

//指针方向

clockWise:true,

title:false,

//表盘外框

axisLine: {

show:true,

lineStyle:{

color:[

[0.25,‘#48D1CC‘],

[0.5,‘#EE6A50‘],

[0.75,‘#3A5FCD‘],

[1,‘#00EE00‘],

],

width:10

},

//表盘细分数

axisTick:{

show:true,

splitNumber: 5,

length :18,

lineStyle: {

color: ‘#eee‘,

width: 1,

type: ‘solid‘,

},

},

//分割线

splitLine: {

show: true,

length :20,

lineStyle: {

color: ‘#eee‘,

width: 2,

type: ‘solid‘

}

}

},

//分割线标识

axisLabel:{

show:true,

formatter:function(v){

switch(v+‘‘){

case‘0‘:return ‘12‘;

case‘12‘:return ‘12‘;

default: return v;

}

}

},

//指针设置

pointer:{

length:‘40%‘,

width:8

},

detail : {

show:false

},

//初始值

data:[{value:0, name: ‘时‘}]

},

//分针

{

name:‘分‘,

type:‘gauge‘,

min:0,

max:60,

splitNumber:60,

center:[‘50%‘,‘50%‘],

radius:100,

startAngle:90,

endAngle:-270,

clockWise:true,

title:false,

axisLine: {

show:true,

lineStyle:{

color:[

[0.25,‘#48D1CC‘],

[0.5,‘#EE6A50‘],

[0.75,‘#3A5FCD‘],

[1,‘#00EE00‘],

],

width:0

},

},

axisTick:{

show:false,

},

splitLine: {

show: false,

},

axisLabel:{

show:true,

formatter:function(v){

switch(v+‘‘){

default: return ‘‘;

}

}

},

pointer:{

length:‘60%‘,

width:5

},

detail : {

show:false

},

data:[{value:0, name: ‘分‘}]

},

//秒针

{

name:‘秒‘,

type:‘gauge‘,

min:0,

max:60,

splitNumber:60,

center:[‘50%‘,‘50%‘],

radius:100,

startAngle:90,

endAngle:-270,

clockWise:true,

title:false,

axisLine: {

show:true,

lineStyle:{

color:[

[0.25,‘#48D1CC‘],

[0.5,‘#EE6A50‘],

[0.75,‘#3A5FCD‘],

[1,‘#00EE00‘],

],

width:0

},

},

axisTick:{

show:false,

},

splitLine: {

show: false,

},

axisLabel:{

show:true,

formatter:function(v){

switch(v+‘‘){

default: return ‘‘;

}

}

},

pointer:{

length:‘85%‘,

width:3

},

detail : {

show:false

},

data:[{value: 0, name: ‘秒‘}]

}

]

};

//每秒绘制指针位置

clearInterval(timeTicket);

var timeTicket = setInterval(function(){

var d = new Date();

var h=d.getHours();

if(h>12){

h=h-12;

};

option.series[0].data[0].value = h;

option.series[1].data[0].value = d.getMinutes();

option.series[2].data[0].value = d.getSeconds();

myChart.setOption(option, true);

},1000);

});

};

三、效果图:

四:缺陷

本例子是仪表盘使用的参考,存在一个动画问题(指针结束一周后进入下一周时的动画效果有bug),有兴趣可以自己研究,修改一下,欢迎提出建议。

时间: 2024-10-07 12:32:08

基于EChars仪表盘创建时钟的相关文章

基于FPGA的跨时钟域信号处理——亚稳态(V3-FPGA学院)

(V3-FPGA学院教你学习FPGA) 基于FPGA的跨时钟域信号处理--亚稳态 基于FPGA的跨时钟域信号处理--亚稳态 什么是亚稳态? 所有数字器件(例如FPGA)的信号传输都会有一定的时序要求,从而保证每 个寄存器将捕获的输入信号正确输出.为了确保可靠的操作,输入寄存器的信号必须在时钟沿的某段时间(寄存器的建立时间Tsu)之前保持稳定,并且持续到时钟沿之后的某段时间(寄存器的保持时间Th)之后才能改变.而该寄存器的输入反映到输出则需要经过一定的延时(时钟到输出的时间Tco).如果数据信号的

搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating-a-wpf-chat-client-server-application/ 注意:本教程是相当广泛的,如果你是在短请也看到我们的东西 开始和 如何在几分钟内创建一个客户端服务器应用程序教程. 注2:本例中包括,明显延长进一步证明功能,在包中包含的示例 包下载. 在我们开始之前确保您已经安装了Vis

Particles.js基于Canvas画布创建粒子原子颗粒效果

文章目录 使用方法 自定义参数 相关链接 Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状.旋转.分布.颜色等属性,还可以动态添加粒子,效果非常炫酷,能和鼠标互动吸附或者是躲避鼠标指针. 使用方法 1.该粒子动画库插件使用方法非常简单,首先要在页面中引入particles.js文件. <script src="js/particles.js"></script> 2.在页面中使用一个div来作为放置粒子的容器

【新手入门】基于Cocos2d-x-2.2x 创建新项目(一)

来自:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos2d-x-ch/manual/framework/native/v2/getting-started/setting-up-development-environments/windows-7-environment-setup/setup-win32-development-environment/zh.md 菜鸟阶段,为了便于自己创建cocos2d-x创

js 基于可视区域 创建展示区域对应的经纬度二维数组

本篇文章主要是分享下基于地图区域创建经纬度二维数组,需要的朋友可以过来参考下 接上个文章, 基于 地图区域,算出这个展示区域对应的点. 经纬度的变化关系:  XY页面展示上, 从左到右维度是增加 如: 106  -> 107 , 从上到下经度是减小  如:30 ->29 创建的时候需要确定从哪开始, 附上代码,如下: function getSizePointsData (latMin,latMax,lngMin,lngMax,lngStep,latStep){ // 区域的最小经度,最大经度

git基于历史commit创建分支

今天在使用dbus实现rpc时,发现远程方法传递和返回的参数不对,而前几天测试过明明是正常的.于是很自然的想到找回历史版本再测试一遍,确认是测试环境发生变化了,还是修改代码引起的. 可是怎么取出历史版本呢?对git不太熟练,折腾了一番总算搞定了. 1.确定需要取出版本的commit值: #git logcommit 76dc4da1c919a2baf430fbe0a7362844ab274451 Author: Zhengfeng Rao <[email protected]> Date: T

unit vs2017基于nunit framework创建单元测试

unit  vs2017基于nunit framework创建单元测试 一.简叙: 单元测试大型项目中是必备的,所以不可忽视,一个项目的成败就看是否有单元测试,对后期的扩展维护都带来了便利. 二.安装: 1.安装nunit包:下图3个都安装: 下载完之后,重启vs,vs会自动安装 2.安装需要的引用: 通过nuget方式安装:安装到自己测试项目中 三.创建单元测试: 包和引用安装完后,就可以创建单元测试了,选择你要测试的项目中的类,类的方法:右键有个创建单元测试: 四.测试: 原文地址:http

(4opencv)如何基于GOCW,创建一个实时视频程序

直接使用提供的代码框架进行修改,是最快得到效果的方法:但是这样的灵活性较差,而且真正的程序员从来都不会停滞在这一步:我们需要的是"将框架解析到最小化.理清楚每个构建之间的关系",只有这样才能灵活运用. 一.准备工作 1.高拍仪已经接通,如果需要的话,还要安装驱动: 2.vs2012编程环境,能够编写Csharp和OpenCV程序(具体不清楚可以回过头来看配置): 3.是DirectShow.net(http://directshownet.sourceforge.net/docs.ht

TestNG基础教程 - 基于IntelliJ IDEA 创建TestNG test

TestNG 是自动化测试框架,比Junit更强大,可用于单元测试,功能测试,端到端测试等,下面我们就介绍一下如何基于IntelliJ IDEA 创建TestNG test? 打开IntelliJ IDEA -> Create New Project -> Next ->  Next -> 编写项目名称 -> Finished 打开https://mvnrepository.com/artifact/org.testng/testng/7.0.0 下载testng-7.0.0