先给个效果图,我画的比较丑,大家可以自己美化一下,

直接上代码:
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<body>
<canvas width="500" height="500" id="clock" >
您的浏览器不支持canvas
</canvas>
<script>
//获取画布
var clock=document.getElementById('clock');
//设置绘图环境
var cxt=clock.getContext('2d');
function drawClock(){
//清除画布
cxt.clearRect(0,0,500,500);
//获取时间,
var now =new Date();
var second =now.getSeconds();
var minute =now.getMinutes();
var hour1 =now.getHours();
//将24小时进制转为12小时,且为浮点型
var hour=hour1+minute/60;
hour=hour>12 ?hour-12:hour;
//获取全部时间
var time=now.toLocaleString( );
//表盘
//开始新路径
cxt.beginPath();
cxt.lineWidth=8;
cxt.strokeStyle="blue";
//路径函数 x,y,r,角度范围,顺时针/逆时针
cxt.arc(250,250,200,0,360,false);
cxt.stroke();
cxt.closePath();
//刻度,利用旋转
//时刻度
for(var i=0;i<12;i++){
//保存当前状态
cxt.save();
//刻度粗细
cxt.lineWidth=5;
//刻度颜色
cxt.strokeStyle="black"
//设置00点,以画布中心为00
cxt.translate(250,250);
//设置旋转角度 参数是弧度,角度 0--360 弧度角度*Math.PI/180
cxt.rotate(i*30*Math.PI/180);
cxt.beginPath();
//刻度起始点
cxt.moveTo(0,-180);
//刻度结束点
cxt.lineTo(0,-195);
cxt.closePath();
cxt.stroke();
//将旋转后的图片返回原画布
cxt.restore();
}
//分刻度
for(var i=0;i<60;i++){
//保存当前状态
cxt.save();
//刻度粗细
cxt.lineWidth=3;
//刻度颜色
cxt.strokeStyle="black"
//设置00点,以画布中心为00
cxt.translate(250,250);
//设置旋转角度 参数是弧度,角度 0--360 弧度角度*Math.PI/180
cxt.rotate(i*6*Math.PI/180);
cxt.beginPath();
//起始点
cxt.moveTo(0,-188);
cxt.lineTo(0,-195);
cxt.closePath();
cxt.stroke();
//将旋转后的图片返回原画布
cxt.restore();
}
//表盘中心
cxt.beginPath();
cxt.lineWidth=1;
cxt.strokeStyle="red";
cxt.fillStyle="red";
//路径函数 x,y,r,角度范围,顺时针/逆时针
cxt.arc(250,250,4,0,360,false);
cxt.fill();
cxt.stroke();
cxt.closePath();
//时针
//保存当前状态
cxt.save();
cxt.lineWidth=5;
cxt.strokeStyle="black";
//设置异次元空间00点
cxt.translate(250,250);
//设置旋转角度 参数是弧度,角度 0--360 弧度角度*Math.PI/180
cxt.rotate(hour*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-120);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//分针
cxt.save();
cxt.lineWidth="3";
cxt.strokeStyle="black";
cxt.translate(250,250);
cxt.rotate(minute*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-150);
cxt.lineTo(0,15);
cxt.closePath();
cxt.stroke();
cxt.restore();
//秒针
cxt.save();
cxt.lineWidth="1.5";
cxt.strokeStyle="red";
cxt.translate(250,250);
cxt.rotate(second*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-160);
cxt.lineTo(0,20);
cxt.closePath();
cxt.stroke();
//秒针前端小点
cxt.beginPath();
//外环为红色
cxt.strokeStyle="red";
//灰色填充
cxt.fillStyle="gray";
cxt.arc(0,-145,4,0,360,false);
cxt.fill();
cxt.closePath();
cxt.stroke();
cxt.restore();
//表盘中心
cxt.beginPath();
cxt.lineWidth=1;
//外环为红色
cxt.strokeStyle="red";
//灰色填充
cxt.fillStyle="gray";
//路径函数 x,y,r,角度范围,顺时针/逆时针
cxt.arc(250,250,4,0,360,false);
cxt.fill();
cxt.stroke();
cxt.closePath();
//写时间
cxt.font="15px 黑体 ";
cxt.fillStyle="black";
//实心字
cxt.fillText(time,160,150);
}
//使用setInterval(代码,毫秒时间)使时钟转起来;
drawClock();
setInterval(drawClock,1000);
</script>
</body>
</html>
分享到:
相关推荐
在这个"HTML5 Canvas 动画时钟"的主题中,我们将深入探讨如何利用Canvas API创建一个实时更新的、美观的数字或指针式时钟。 首先,Canvas API 提供了 `canvas` 元素,它是一个矩形区域,可以通过 JavaScript 来绘制...
在这个“html5 canvas画布绘制圆形时钟代码”示例中,我们将深入探讨如何利用Canvas API来创建一个功能完备的圆形时钟。 首先,你需要在HTML文件中创建一个`<canvas>`元素,它将作为我们的画布。例如: ```html <!...
html5---用canvas写一个时钟
这篇博文“HTML5 Canvas绘制时钟”旨在介绍如何利用Canvas API创建一个实时更新的数字或指针式时钟。我们将深入探讨Canvas的基础知识、相关API以及实现时钟的具体步骤。 1. HTML5 Canvas基础 HTML5 Canvas是一个二...
Canvas是HTML5引入的一个重要特性,它允许开发者通过JavaScript在网页上绘制2D图形,从而实现各种动态效果,如本主题所讲的“太空星球运动”。 在Canvas上创建动画,首先要理解Canvas的基本用法。Canvas是一个矩形...
本教程将深入探讨如何使用HTML5的canvas画布来创建一个小球回弹的动画。 首先,我们需要在HTML文件中创建一个`<canvas>`元素,并为其指定ID,以便于JavaScript代码中引用: ```html <!DOCTYPE html> <html lang=...
使用html5中的canvas标签+jquery绘制的时钟走动代码
在这个“HTML5 Canvas红色灯笼时钟动画”项目中,开发者利用Canvas API创建了一个具有红色灯笼主题的动态时钟,这个时钟能够根据用户的电脑时间实时更新显示。 首先,我们来了解一下Canvas的基本概念。HTML5中的`...
使用canvas实现动态时钟效果
在这个“HTML5 canvas时钟效果.zip”压缩包中,包含了一个使用Canvas API实现的时钟显示功能。这个时钟不仅绘制了表盘、时针、分针和秒针,还展示了数字时间,为网页增添了一种实用且动态的元素。 1. **Canvas基本...
在网页设计中,Canvas元素是HTML5引入的一个强大的图形绘制工具,它允许开发者通过JavaScript来在浏览器中直接绘制图形,包括动态的动画效果。"canvas动画 - 背景线条"是一个利用Canvas实现的创新性设计,它可以为...
HTML5 Canvas是Web开发中的一个关键技术,它提供了一个在网页上绘制图形的API,使得开发者可以直接在浏览器中创建丰富的交互式2D图形、动画以及游戏。"HTML5 Canvas核心技术—图形、动画与游戏开发"这本书深入浅出地...
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上直接绘制图形,从而创建出丰富的交互式用户体验。这个“html5 canvas模仿flash的简单动画banner Demo”就是利用Canvas API来实现类似Flash的动态广告...
Canvas是HTML5中的一个画布标签,它允许开发者通过JavaScript来绘制图形,包括线条、形状、图像等,甚至可以实现复杂的动画效果。在本项目中,Canvas被用来创建一个实时更新的数字时钟,这展示了Canvas的动态绘图...
HTML5 Canvas 是一个强大的网页图形绘制工具,它允许开发者通过JavaScript在浏览器中直接进行2D图形的绘制。在这个项目中,“html5 canvas制作15种数字时钟样式代码”是利用Canvas API创建了十五种不同设计风格的...
通过使用 HTML5 的 Canvas 元素,我们可以轻松地绘制一个时钟。 Canvas 元素提供了一个强大的绘图功能,可以用来绘制各种图形和动画。在这篇文章中,我们学习了如何使用 Canvas 元素来绘制一个时钟,包括绘制时钟的...
例如,如果一个页面只使用柱状图和饼图,可以只加载这两种图表的模块,而不需要加载其他不使用的图表模块,节省流量和提高加载速度。 3. **模块化设计**:EC-Canvas采用模块化设计,每个图表或功能都是一个独立的...
这个"基于Html5-canvas炫酷的数字时钟.zip"文件很可能包含了一个使用HTML5 Canvas实现的创新数字时钟示例。在这个项目中,开发者可能利用了Canvas的绘图功能来创建一个视觉上吸引人的时钟界面,它能够实时更新时间,...
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创建丰富的交互式用户体验。这本书——"HTML5 Canvas核心技术 图形、动画与游戏开发"深入探讨了Canvas API,揭示了如何利用这个技术...
HTML5 CSS3 Canvas技术生成很自然流畅的人体运动动画,模拟出了身体碰撞被挤压的动画特效,在实例中有一个大球,用户操作大球任意运动,碰撞到人体的任意部分后,人体会自然的受到挤压和躲避,可看到人的身体某部分...