html5学习(一)--canvas画时钟

利用空余时间学习一下html5.
  1 <!doctype html>
  2 <html>
  3     <head></head>
  4     <body>
  5         <canvas id="clock" width="500" height="500"></canvas>
  6         <script>
  7             var clock=document.getElementById(‘clock‘);
  8             var cxt = clock.getContext(‘2d‘);
  9             function drawClock(){
 10                 //清除画布
 11                 cxt.clearRect(0,0,500,500);
 12                 var now = new Date();
 13                 var sec = now.getSeconds();
 14                 var min = now.getMinutes();
 15                 var hour = now.getHours();
 16                 //小时必须获取浮点类型(小时+分数转化成的小时);
 17                 hour= hour+min/60;
 18                 //问题:2014年8月18日 22:08:41
 19                 //将24小时进制转换成12小时
 20                 hour= hour>12?hour-12:hour;
 21                 //表盘(蓝色)
 22                 cxt.lineWidth=10;
 23                 cxt.strokeStyle="blue";
 24                 //刻度
 25                 cxt.beginPath();
 26                 cxt.arc(250,250,200,0,360,false);
 27                 cxt.closePath();
 28                 cxt.stroke();
 29                 //时刻度
 30                 for(var i=0;i<12;i++){
 31                     cxt.save();//保持当前状态
 32                     cxt.lineWidth=10;//设置时针的粗细
 33                     cxt.strokeStyle="#000";//设置时针颜色
 34                     cxt.translate(250,250);//设置0,0点
 35                     cxt.rotate(i*30*Math.PI/180);//设置旋转角度(=角度*Math*PI/180)
 36                     cxt.beginPath();
 37                     cxt.moveTo(0,-170);
 38                     cxt.lineTo(0,-190);
 39                     cxt.closePath();
 40                     cxt.stroke();
 41                     cxt.restore();//释放状态
 42                 }
 43                  //分刻度
 44                  for(var i=0;i<60;i++){
 45                     cxt.save();//保持当前状态
 46                     cxt.lineWidth=5;//设置时针的粗细
 47                     cxt.strokeStyle="#000";//设置时针颜色
 48                     cxt.translate(250,250);//设置0,0点
 49                     cxt.rotate(i*6*Math.PI/180);//设置旋转角度(=角度*Math*PI/180)
 50                     cxt.beginPath();
 51                     cxt.moveTo(0,-180);
 52                     cxt.lineTo(0,-190);
 53                     cxt.closePath();
 54                     cxt.stroke();
 55                     cxt.restore();//释放状态
 56                 }
 57                  //时针
 58                   cxt.save();
 59                  //设置时针风格
 60                  cxt.lineWidth=10;
 61                  cxt.strokeStyle="#000";
 62                  //设置异次元空间的0,0点
 63                  cxt.translate(250,250);
 64                  cxt.rotate(hour*30*Math.PI/180)//设置旋转角度
 65                  cxt.beginPath();
 66                  cxt.moveTo(0,-140);
 67                  cxt.lineTo(0,10);
 68                  cxt.closePath();
 69                  cxt.stroke();
 70                  cxt.restore();
 71
 72                  //分针
 73                  cxt.save();
 74                  cxt.lineWidth=7;
 75                  cxt.strokeStyle="#000";
 76                  //设置异次元空间的0,0点
 77                  cxt.translate(250,250);
 78                  cxt.rotate(min*6*Math.PI/180)//设置旋转角度
 79                  cxt.beginPath();
 80                  cxt.moveTo(0,-160);
 81                  cxt.lineTo(0,15);
 82                  cxt.closePath();
 83                  cxt.stroke();
 84                  cxt.restore();
 85
 86                  //秒针
 87                  cxt.save();
 88                  cxt.lineWidth=3;
 89                  cxt.strokeStyle="red";
 90                  //设置异次元空间的0,0点
 91                  cxt.translate(250,250);
 92                  cxt.rotate(sec*6*Math.PI/180)//设置旋转角度
 93                  cxt.beginPath();
 94                  cxt.moveTo(0,-170);
 95                  cxt.lineTo(0,20);
 96                  cxt.closePath();
 97                  cxt.stroke();
 98                  //画出时针,分针,秒针的交叉点
 99                  cxt.beginPath();
100                  cxt.arc(0,0,5,0,360,false);
101                  //设置填充样式
102                  cxt.fillStyle="yellow";
103                  cxt.fill();
104                  //设置笔触样式
105                  cxt.stroke();
106                  //设置秒针钱小圆点
107                  cxt.beginPath();
108                  cxt.arc(0,-150,5,0,360,false);
109                  //设置填充样式
110                  cxt.fillStyle="yellow";
111                  cxt.fill();
112                  //设置笔触样式
113                  cxt.stroke();
114                  cxt.restore();
115         }
116             //使用setInterval(代码,毫秒时间)时钟转动
117             drawClock();
118             setInterval(drawClock,1000);
119         </script>
120     </body>
121
122 </html>

显示效果:

html5学习(一)--canvas画时钟,布布扣,bubuko.com

时间: 2024-10-12 20:05:16

html5学习(一)--canvas画时钟的相关文章

html5 canvas 画时钟

<!DOCTYPE HTML> <html> <body> <canvas id="myCanvas" width="400" height="400" style="border:1px solid"></canvas> <script type="text/javascript">     // get the canvas    

[html5] 学习笔记-Canvas标签的使用

Canvas通过JavaScript来绘制2D图形.Canvas是逐像素渲染的.在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果其位置发生变化,那么整个场景也需要重新绘制,包括任何已被图形覆盖的对象. 1.Canvas标签 html5中<canvas>元素用于图形的绘制,通过脚本(通常是JavaScript)来完成 <canvas>标签只是图形容器 可以通过多种方法使用Canvas绘制路径.盒.圆.字符以及添加图像 1.1 直接在html5中创建,这种方式采

[html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形

在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中,左上方的点,为坐标轴原点(0,0). 1.绘制渐变图形 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <script> 6 function draw(id){ 7 va

HTML5 学习之Canvas画布

HTML5可以用javascript进行图形的制作,需要声明一个<canvas>标签,然后在这个标签中用javascript利用canvas API进行画图,举例如下: <canvas id="canvas1" width="200" height="200"><canvas/> <script type="text/javascript"> var c=document.get

使用 canvas画时钟

今天看了H5的canvas,练习使用下.待完善... class Clock { constructor(canvas) { this.canvas = canvas; } draw() { let ctx = this.canvas.getContext("2d"); ctx.setDefault = function() { const default_strokeStyle = "#000000"; this.strokeStyle = default_str

canvas画时钟

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> canvas { border: 1px solid black; margin:10px auto; } </style> </head> <body> <c

玩转html5(四)----使用canvas画一个时钟(可以动的哦!)

先给个效果图,我画的比较丑,大家可以自己美化一下, 直接上代码: <!DOCTYPE html> <meta charset="utf-8"> <html> <body> <canvas width="500" height="500" id="clock" > 您的浏览器不支持canvas </canvas> <script> //获取画布

HTML5 学习总结(四)——canvas绘图、WebGL、SVG

HTML5 学习总结(四)--canvas绘图.WebGL.SVG 目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML5游戏开发 2.2.1.Cocos2D-HTML5 2.2.2.Egret(白鹭引擎) 三.SVG 3.1.SVG Hello Wrold 3.2.多种引入SVG的方法 3.3.画直线 3.4.画椭圆 3.5.文本与矩形 3.6.向

html5中用canvas画八大行星围绕太阳转

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8&