JS+H5 Canvas实现时钟效果

用JavaScript+Canvas来实现最简单的时钟效果,供大家参考,具体内容如下

效果图:

先看HTML代码

rush:xhtml;"> <Meta charset="UTF-8">

JavaScript代码

rush:js;"> var canvas,context; function draw(){//定义划时钟的方法 var data = new Date(); var hHoure = data.getHours(); var mMin = data.getMinutes(); var sSec = data.getSeconds(); var hValue = (hHoure*30+mMin/2-90)*Math.PI/180; var mValue = (mMin*6-90)*Math.PI/180; var sValue = (sSec*6 -90)*Math.PI/180; var x = 200,y = 200,r = 150;

context.clearRect(0,canvas.width,canvas.height);
context.moveto(x,y);
context.arc(x,y,r,6Math.PI/180,false);
//
context.beginPath();
context.linewidth = 1;
for(var i = 0;i<60;i++){
context.moveto(x,6
iMath.PI/180,6(i+1)Math.PI/180,false);
}
context.closePath();
context.stroke();
//
context.beginPath();
context.fillStyle = "white";
context.moveto(x,r/1.1,-0,2
Math.PI,false);
context.closePath();
context.fill();
//
context.beginPath();
context.linewidth = 3;
for(var i = 0;i<12;i++){
context.moveto(x,30iMath.PI/180,30(i+1)Math.PI,r/1.12,false);
context.closePath();
context.fill();

context.beginPath();
context.fillStyle = "black";
context.moveto(x,r/30,false);
context.fill();
//
context.beginPath();
context.linewidth = 5;
context.moveto(x,r/2.5,hValue,false);
context.stroke();
//
context.beginPath();
context.linewidth = 3;
context.moveto(x,r/2,mValue,false);
context.stroke();
//
context.beginPath();
context.linewidth = 2;
context.moveto(x,r/1.6,sValue,false);
context.stroke();
}
window.onload = function(){
canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
canvas.height = 500;
canvas.width = 500;
setInterval(draw,1000);
draw();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...