首页 / CANVAS / canvas学习笔记--简单时钟
canvas学习笔记--简单时钟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了canvas学习笔记--简单时钟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4020字,纯文字阅读大概需要6分钟。
内容图文
1.HTML
1 <! DOCTYPE html > 2 < html > 3 4 < head > 5 < title >JavaScript-canvas时钟</title> 6<meta charset=‘utf-8‘ /> 7<link rel="stylesheet" type="text/css" href="clock.css"> 8<script type="text/javascript" src=‘clock.js‘></script> 9</head>1011<body>12<canvas id="canvas" widht="300" height="300" style="background-color:black">clock</canvas>13</body>1415</html>
2.js代码
1 function addLoadEvent(func) { 2 var oldonload = window.onload; 3if (typeof window.onload != ‘function‘) { 4 window.onload = func; 5 } else { 6 window.onload = function() { 7 oldonload(); 8 func(); 9 } 10 }; 11} 12addLoadEvent(clock); 13 14function clock() { 15var canvas = document.querySelector(‘canvas‘); 16// 检测浏览器是否支持canvas元素 17if (canvas.getContext) { 18var context = canvas.getContext(‘2d‘); 19 20// 清空画布 21 context.clearRect(0, 0, canvas.width, canvas.height); 22 23// 表盘 24 context.strokeStyle = "#00FFFF"; 25 context.lineWidth = 6; 26 context.beginPath(); 27 context.arc(150, 150, 140, 0, 2 * Math.PI, false); 28 context.stroke(); 29 context.closePath(); 30 31// 时钟刻度 32for (var i = 0; i < 12; i++) { 33// 设置并保存当前状态 34 context.strokeStyle = "#FFFF00"; 35 context.lineWidth = 4; 36 context.save(); 37// 变换原点 38 context.translate(150, 150); 39// 旋转角度(12小时,每小时30度) 40 context.rotate(30 * i * Math.PI / 180); 41// 开始绘制 42 context.beginPath(); 43 context.moveTo(0, -137); 44 context.lineTo(0, -120); 45 context.stroke(); 46 context.closePath(); 47// 恢复原来的状态 48 context.restore(); 49 }; 50 51// 分钟刻度 52for (var i = 0; i < 60; i++) { 53 context.strokeStyle = "#FFFF00"; 54 context.lineWidth = 2; 55 context.save(); 56 context.translate(150, 150); 57// 旋转角度(60分钟,每分钟6度) 58 context.rotate(6 * i * Math.PI / 180); 59 context.beginPath(); 60 context.moveTo(0, -137); 61 context.lineTo(0, -127); 62 context.stroke(); 63 context.closePath(); 64 context.restore(); 65 }; 66 67// 根据当前时间绘制时针、分针、秒针 68var now = new Date(); 69var sec = now.getSeconds(); 70var min = now.getMinutes(); 71var hour = now.getHours(); 72 hour > 12 ? hour - 12 : hour; 73 hour += (min / 60); 74 min += (sec / 60); 75 76//-----------------------------时针----------------------------- 77 context.save(); 78 context.lineWidth = 5; 79 context.strokeStyle = "#00FFFF"; 80 context.translate(150, 150); 81 context.rotate(hour * 30 * Math.PI / 180); //每小时旋转30度 82 context.beginPath(); 83 context.moveTo(0, -70); 84 context.lineTo(0, 10); 85 context.stroke(); 86 context.closePath(); 87// 这里一定要返回上一级,恢复之前的状态 88 context.restore(); 89 90//-----------------------------分针----------------------------- 91 context.save(); 92 context.lineWidth = 3; 93 context.strokeStyle = "#FFFF00"; 94 context.translate(150, 150); 95 context.rotate(min * 6 * Math.PI / 180); //每分钟旋转6度 96 context.beginPath(); 97 context.moveTo(0, -100); 98 context.lineTo(0, 10); 99 context.stroke(); 100 context.closePath(); 101// 这里一定要返回上一级,恢复之前的状态102 context.restore(); 103104//-----------------------------秒针-----------------------------105 context.save(); 106 context.lineWidth = 2; 107 context.strokeStyle = "#FF0000"; 108 context.translate(150, 150); 109 context.rotate(sec * 6 * Math.PI / 180); //每秒旋转6度110 context.beginPath(); 111 context.moveTo(0, -120); 112 context.lineTo(0, 10); 113 context.stroke(); 114 context.closePath(); 115// 这里一定要返回上一级,恢复之前的状态116 context.restore(); 117118// 电子时钟119 hour = now.getHours(); 120 min = now.getMinutes(); 121if (hour >= 10) { 122 hour = hour; 123 } else { 124 hour = "0" + hour; 125 }; 126if (min >= 10) { 127 min = min; 128 } else { 129 min = "0" + min; 130 }; 131if (sec >= 10) { 132 sec = sec; 133 } else { 134 sec = "0" + sec; 135 }; 136 context.font = "18px 微软雅黑"; 137 context.lineWidth = 2; 138 context.fillStyle = "#0000FF"; 139 context.textAlign = "center"; 140 context.textBaseline = "middle"; 141 context.fillText(hour + ":" + min + ":" + sec, 150, 250); 142 }; 143 setTimeout(clock, 1000); 144 }
原文:http://www.cnblogs.com/guiren/p/4941664.html
内容总结
以上是互联网集市为您收集整理的canvas学习笔记--简单时钟全部内容,希望文章能够帮你解决canvas学习笔记--简单时钟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。