利用html5制作一个时钟动画

1 <canvas id="clock" width="500" height="500" style="background-color: yellow"></canvas>
  1 var clock=document.getElementById("clock");
  2     var cxt=clock.getContext("2d");
  3 function drawNow(){
  4     var now=new Date();
  5     var hour=now.getHours();
  6     var min=now.getMinutes();
  7     var sec=now.getSeconds();
  8     hour=hour>12?hour-12:hour;
  9     hour=hour+min/60;
 10     //表盘(蓝色)
 11     cxt.lineWidth=10;
 12     cxt.strokeStyle="blue"
 13     cxt.beginPath();
 14     cxt.arc(250,250,200,0,360,false);
 15     cxt.closePath();
 16     cxt.stroke();
 17     //刻度
 18     //时刻度
 19     for(var i=0;i<12;i++){
 20         cxt.save();
 21         cxt.lineWidth=7;
 22         cxt.strokeStyle="black";
 23         cxt.translate(250,250);
 24         cxt.rotate(i*30*Math.PI/180);//旋转角度  角度*Math.PI/180=弧度
 25         cxt.beginPath();
 26         cxt.moveTo(0,-170);
 27         cxt.lineTo(0,-190);
 28         cxt.closePath();
 29         cxt.stroke();
 30         cxt.restore();
 31     }
 32     //分刻度
 33     for(var i=0;i<60;i++){
 34         cxt.save();
 35         //设置分刻度的粗细
 36         cxt.lineWidth=5;
 37         //重置画布原点
 38         cxt.translate(250,250);
 39         //设置旋转角度
 40         cxt.rotate(i*6*Math.PI/180);
 41         //画分针刻度
 42         cxt.strokeStyle="black";
 43         cxt.beginPath();
 44         cxt.moveTo(0,-180);
 45         cxt.lineTo(0,-190);
 46         cxt.closePath();
 47         cxt.stroke();
 48         cxt.restore();
 49     }
 50
 51     //时针
 52     cxt.save();
 53     // 设置时针风格
 54     cxt.lineWidth=7;
 55     cxt.strokeStyle="black";
 56     cxt.translate(250,250);
 57     cxt.rotate(hour*30*Math.PI/180);
 58     cxt.beginPath();
 59     cxt.moveTo(0,-140);
 60     cxt.lineTo(0,10);
 61     cxt.closePath();
 62     cxt.stroke();
 63     cxt.restore();
 64     //分针
 65     cxt.save();
 66     cxt.lineWidth=5;
 67     cxt.strokeStyle="black";
 68     //设置异次元空间分针画布的中心
 69     cxt.translate(250,250);
 70     cxt.rotate(min*6*Math.PI/180);
 71     cxt.beginPath();
 72     cxt.moveTo(0,-160);
 73     cxt.lineTo(0,15);
 74     cxt.closePath();
 75     cxt.stroke()
 76     cxt.restore();
 77
 78     //秒针
 79     cxt.save();
 80     //设置秒针的风格
 81     //颜色:红色
 82     cxt.strokeStyle="red";
 83     cxt.lineWidth=3;
 84     //重置原点
 85     cxt.translate(250,250);
 86     //设置角度
 87     //cxt.rotate(330*Math.PI/180);
 88     cxt.rotate(sec*6*Math.PI/180);
 89
 90     cxt.beginPath();
 91     cxt.moveTo(0,-170);
 92     cxt.lineTo(0,20);
 93     cxt.closePath();
 94     cxt.stroke();
 95     //画出时针,分针,秒针的交叉点
 96     cxt.beginPath();
 97     cxt.arc(0,0,5,0,360,false);
 98     cxt.closePath();
 99     //设置填充
100     cxt.fillStyle="gray";
101     cxt.fill();
102     //cxt.strokeStyle="red";
103     cxt.stroke();
104
105     //画出秒针的小圆点
106     cxt.beginPath();
107     cxt.arc(0,-140,5,0,360,false);
108     cxt.closePath();
109     //设置填充
110     cxt.fillStyle="gray";
111     cxt.fill();
112     //cxt.strokeStyle="red";
113     cxt.stroke();
114
115
116     cxt.restore();
117
118
119
120 }
121 function drawClock(){
122     cxt.clearRect(0,0,500,500);
123     drawNow();
124 }
125     drawNow();
126     setInterval(drawClock,1000);

利用html5制作一个时钟动画

时间: 2024-11-05 20:41:32

利用html5制作一个时钟动画的相关文章

html5制作一个时钟

试着用html5写一个时钟 记得开始这个随笔是几天前,一直保存在草稿里面,一直感觉有个东西搁在在那里,所以今天熬夜也要写完这篇博客!!!哈哈...不多说来上代码和思路. --------------------------------------------------------------------------------------------- 其实并不难,主要看你是否掌握了canvas下面几个属性:save(),restore();ratate();translate(),moveT

利用canvas制作一个时钟

先上张效果图. 利用canvas来画出一个时钟,想想都是一件神奇又美妙的事情.话不多说,先上代码吧. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-sca

结合js利用画布制作一个时钟

首先 搭建canvas画布格式: 动态获取画布的宽和高方便变换,利用translate将圆中心坐标改为0 0: <canvas width="800px" height="800px"></canvas> <script> var canvas=document.querySelector("canvas"); var ctx=canvas.getContext("2d"); var wid

利用javafx编写一个时钟制作程序

1.首先创建一个时钟类,用于编写时钟的各种特有属性 package javaclock; /** * * @author admin */import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Scanner; import javafx.scene.layout.Pane;import javafx.scene.paint.Color;import javafx.scene.shape.Circ

利用CSS3制作淡入淡出动画效果

CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致. 利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态效果,由CSS3来驱动产生动画效果. 下面讲解一下如何利用CSS3制作淡入淡出的动画效果.具体实例可参考刚进入本站时的淡入效果. 1. 定义动画,名称为fadeIn @-webkit-keyframes fadeIn { 0% { opacity: 0; /*初始状态 透明度为0*/ } 50% {

利用Python制作一个连连看小游戏,边学边玩!

导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先睹为快 在cmd窗口运行"Game15.py"文件即可. 效果如下: 原理简介 游戏规则: 玩家通过鼠标交换相邻的拼图,若交换后水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分,同时生成新的拼图以补充消失的部分,否则,交换失败,玩家不

利用XPT2046制作一个电位器AD转换装置

XPT2046是一款四线制电阻触摸屏控制芯片,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器,支持从1.5V到5.25V的低电压I/O接口. 所谓逐步逼近型,就是输入一个模拟量,其与1000 0000 0000 对应的模拟量进行比较,大则高位取1,小则高位取0.这种思想相当于折半查询,所以可以依次从高位到低位确定所有值,以此来确定模拟量对应的数字量. 我们该如何去用这个芯片,来完成将一个模拟量转换成数字量呢? 初学者确实有很大的困难,我们需要学会怎么去看它的芯片手册. 上图是它的一个

利用html5制作正方体,同时实现3D旋转效果

<!doctype html><html> <head> <meta charset="utf-8"/> <title></title> <style type="text/css"> .eyes{ perspective: 1000px; } .box{ /*设置3D效果*/ transform-style: preserve-3d; /*盒子的大小*/ width: 200px;

Ubuntu14.04利用byzanz制作gif格式动画

让博客生动形象的方式是图文并茂,更生动形象的方式就是放上动图.比如GIF动图.为此专门进行了一番搜索,发现了Ubuntu下有个叫做byzanz的制作GIF的软件. byzanz安装: sudo apt-get install byzanz byzanz有两个命令: byzanz-record byzanz-playback 第一个就是录像的,第二个就是回放用的. 来篇使用参考教程:Make Animated GIF Screencasts Easily With Byzanz 因为这个是命令行工