89canvas制作时钟

这是用HTML5的canvas制作的一个钟表,包含表盘、时针、分针、秒针及它们的运动;另外还添加了自动读时间的功能。```html:run<!doctype html><html><head>    <style>        #clock{            display:block;            background:url("") no-repeat;            margin: 0 auto;        }    </style></head><body><canvas id="clock" width="500" height="500" >    您的浏览器不支持canvas标签,无法看到时钟</canvas><script>    var clock=document.getElementById(‘clock‘);    var context=clock.getContext(‘2d‘);    function drawClock() {        context.clearRect(0, 0, 500, 500);        function tow(n) {            return n >= 0 && n < 10 ? ‘0‘ + n : ‘‘ + n;        }        var now = new Date();        var second = now.getSeconds();        var minute = now.getMinutes();        var hour = now.getHours();        var date = now.getDate();        var month = now.getMonth()+1;        var year = now.getFullYear();        hour = hour + minute / 60;        var hour1=hour;        hour = hour > 12 ? hour - 12 : hour;        //制作时钟外圈        context.lineWidth = 10;        context.beginPath();        context.arc(250, 270, 200, 0, 360, false);        context.stroke();        context.closePath();       //小时刻度制作        for (i = 0; i < 12; i++) {            context.save();            context.lineWidth = 9;            context.strokeStyle = "red";            context.translate(250, 270);            context.rotate(i * 30 * Math.PI / 180);            context.beginPath();            context.moveTo(0, -170);            context.lineTo(0, -190);            context.stroke();            context.closePath();            context.restore();        }        //分钟刻度制作        for ( i = 0; i < 60; i++) {            context.save();            context.lineWidth = 5;            context.strokeStyle = "blue";            context.translate(250, 270);            context.rotate(i * 6 * Math.PI / 180);            context.beginPath();            context.moveTo(0, -180);            context.lineTo(0, -190);            context.stroke();            context.closePath();            context.restore();        }        //钟面上表示小时的数字        for (var i = 1; i < 13; i++) {            context.save();            var deg = i * Math.PI / 6;            context.translate(250, 270);            var x = Math.sin(deg);            var y = -Math.cos(deg);            context.fillStyle = "block";            context.font = "25px 宋体";            context.textAlign = "center";            context.textBaseline = "middle";            context.lineWidth=1;            context.strokeStyle="white";            context.beginPath();            context.strokeText(i, x * 155, y * 155);            context.closePath();            context.restore();        }        //时针制作        context.save();        context.lineWidth=7;        context.strokeStyle="#000";        context.translate(250,270);        context.rotate(hour*30*Math.PI/180);        context.beginPath();        context.moveTo(0,-110);        context.lineTo(0,10);        context.stroke();        context.closePath();        context.restore();        //分针制作        context.save();        context.lineWidth=5;        context.strokeStyle="#000";        context.translate(250,270);        context.rotate(minute*6*Math.PI/180);        context.beginPath();        context.moveTo(0,-135);        context.lineTo(0,15);        context.stroke();        context.closePath();        context.restore();        //秒针制作        context.save();//保存当前环境;        //以下是秒针的主体        context.strokeStyle="red";        context.lineWidth=3;        context.translate(250,270);        context.rotate(second*6*Math.PI/180);//秒针旋转的速度        context.beginPath();        context.moveTo(0,-170);        context.lineTo(0,20);        context.stroke();               context.closePath();        //以上是秒针的主体,以下是时针、分针、秒针的交叉点        context.beginPath();        context.arc(0,0,5,0,360,false);        context.closePath();        context.fillStyle="gray";        context.fill();        context.stroke();        //以上是时针、分针、秒针的交叉点,以下是秒针的顶端装饰。        context.beginPath();        context.arc(0,-150,5,0,360,false);        context.closePath();        context.fillStyle="gray";        context.fill();        context.stroke();        context.restore();//返回已保存过的环境。        //以下是文字报时;        context.save();        context.font="23px 楷体";        context.lineWidth=1;        context.strokeStyle="white";        context.strokeText("现在是北京时间:"+tow(year)+"年"+tow(month)+"月"+tow(date)+"日 "                +tow(Math.floor(hour1))+"时"+tow(minute)+"分"+tow(second)+"秒",5,30);        context.restore();    }    drawClock();    setInterval(drawClock,1000);</script></body></html>```

原文地址:https://www.cnblogs.com/gushixianqiancheng/p/10967141.html

时间: 2025-01-18 02:32:51

89canvas制作时钟的相关文章

如何利用iframe标签以及Javascript制作时钟?

如何利用iframe标签以及Javascript制作时钟? 如何制作一个时钟呢?效果如下图所示: 这里的时钟会不停的走,但是下面的页面是不会变得,这样就实现了我们想要的效果了.下面我将分为以下几个方面来讲: javascript中的Date引用类型 几种效果不佳的实例 <iframe>标签 最终效果不错的实例 如果大家想直接看最终不错的效果实例,可以直接点击这里. 第一部分:Date引用类型 1.日期对象可以直接使用new操作符和Date构造函数构造.代码如下: 1 var date=new

如何用iframe标签以及Javascript制作时钟?

如何利用iframe标签以及Javascript制作时钟? 如何制作一个时钟呢?效果如下图所示: 这里的时钟会不停的走,但是下面的页面是不会变得,这样就实现了我们想要的效果了.下面我将分为以下几个方面来讲: javascript中的Date引用类型 几种效果不佳的实例 <iframe>标签 最终不错的效果实例 如果大家想直接看最终不错的效果实例,可以直接点击这里. 第一部分:Date引用类型 1.日期对象可以直接使用new操作符和Date构造函数构造.代码如下: var date=new Da

css3制作时钟

制作时钟之前需要了解几点知识: 一.圆上点坐标的计算 二.时钟上时针.分针.秒针的换算 我们观察一下时钟,首先想到的是与角度有关.再有是,秒针,分针,时针之间的进位关系. 比如说h时m分s秒,时针.分针.秒针此时此刻的角度:(-90,是因为rotateZ角度旋转规则,默认是从水平开始,逆时针为+,顺时针为-) ds  =  s*6-90; dm =  m*6+(s/60*6)-90; dh  =  h*30+(m/60*30)-90; 我们都知道1s = 1 / 60min,1min = 1 /

JavaScript制作时钟特效

需求说明:制作显示年.月.日.星期几并且显示上午(AM)和下午(PM)的 12进制的时钟,具体效果如下所示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <meta http-equiv="Content-Type" content="text/h

(C/C++学习)12.获取系统时间制作时钟

说明:通过调用函数来获取系统当前时间,并制作一个数字式的时钟,时钟的显示包括年.月.日.小时.分以及秒,通过系统屏幕的刷新来对不断更新的时间进行屏幕的显示. 一.对相关函数的学习 1.time_t time(time_t *second): a.头文件:<time.h> b.该函数返回自纪元1970-01-01 00:00:00 起经过的秒数,这是一个很大的数,若 second 不为NULL,则返回值将自动存储在该指针中. 注意:此处的 time_t 以及 __time32_t 都是 long

利用JS函数制作时钟运行程序

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>时钟</title> <script type="text/javascript"> function toDouble(num)//不满两位,空位补零 { if(num<10) { return '0'+num;//一

canvas 制作时钟效果

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABuQAAAM7CAYAAACyYvapAAAgAElEQVR4AezdCXhcV3338b8s2ZIty/IiO3a8xY4dExIHQslKQmIoCZAQSGhfytuylEBbCoUWKCnQt4hSlgClLVASCoSdAkkckhDIQnBC9jgbcRbifbdsy7KtzZYsS+9zZMY+Gt2Ze+fOOf+5c+93niePztw55/8753POyEI

cocos2d制作时钟

http://blog.csdn.net/u012945598/article/details/16946283 总结:一个SCENE,三个LAYER代表三个指针,每个LAYER加载一个精灵(实际图片) 大多数情况都是background申明成一个layer,在background里面建立一个新的SCENE返回给主函数. 本人通过将background设置成scene,背景图片用一个精灵来表示,然后将精灵直接加到这个scene中.addchild的参数都是node,而layer和scene都是n

一款CSS3制作个性网页时钟

<!DOCTYPE html> <html lang="en-US"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> <title>一款CSS3制作个性网页时钟丨 电影院椅子|kiddy安全座椅</titl