×

Canvas应用:实现最简单的挂钟效果

作者:cidy20172021.02.08来源:Web前端之家浏览:395评论:0
关键词:jscanvas

Canvas应用:实现最简单的挂钟效果。废话不多说,直接上DEMO。

<html>
 <head>
 <meta charset="UTF-8">
 <title>Canvas应用:实现最简单的挂钟效果 | Web前端之家https://www.jiangweishan.com/</title>
 </head>
 <body>
 <canvas id = "canvas"></canvas>
 
 <script type="text/javascript" >
    var canvas,context;
    function draw(){//定义划时钟的方法
     var data = new Date();
     var hHoure = data.getHours();
     var mMin = data.getMinutes();
     var sSec = data.getSeconds();
     var hValue = (hHoure*30+mMin/2-90)*Math.PI/180; 
     var mValue = (mMin*6-90)*Math.PI/180;
     var sValue = (sSec*6 -90)*Math.PI/180;
     var x = 200,y = 200,r = 150;
     
     context.clearRect(0,0,canvas.width,canvas.height);
     context.moveTo(x,y);
     context.arc(x,y,r,0,6*Math.PI/180,false);
     //
     context.beginPath();
     context.lineWidth = 1;
     for(var i = 0;i<60;i++){
     context.moveTo(x,y);
     context.arc(x,y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false);
     }
     context.closePath();
     context.stroke();
     //
     context.beginPath();
     context.fillStyle = "white";
     context.moveTo(x,y);
     context.arc(x,y,r/1.1,-0,2*Math.PI,false);
     context.closePath();
     context.fill();
     // 
     context.beginPath();
     context.lineWidth = 3;
     for(var i = 0;i<12;i++){
     context.moveTo(x,y);
     context.arc(x,y,r,30*i*Math.PI/180,30*(i+1)*Math.PI,false);
     }
     context.closePath();
     context.stroke();
     //
     context.beginPath();
     context.fillStyle = "white";
     context.moveTo(x,y);
     context.arc(x,y,r/1.12,0,2*Math.PI,false);
     context.closePath();
     context.fill();
     
     context.beginPath();
     context.fillStyle = "black";
     context.moveTo(x,y);
     context.arc(x,y,r/30,0,2*Math.PI,false);
     context.fill(); 
     //
     context.beginPath();
     context.lineWidth = 5;
     context.moveTo(x,y);
     context.arc(x,y,r/2.5,hValue,hValue,false);
     context.stroke();
     //
     context.beginPath();
     context.lineWidth = 3;
     context.moveTo(x,y);
     context.arc(x,y,r/2,mValue,mValue,false);
     context.stroke(); 
     //
     context.beginPath();
     context.lineWidth = 2;
     context.moveTo(x,y);
     context.arc(x,y,r/1.6,sValue,sValue,false);
     context.stroke();
    }
    window.onload = function(){
     canvas = document.getElementById('canvas');
     context = canvas.getContext('2d');
     canvas.height = 500;
     canvas.width = 500;
     setInterval(draw,1000); 
     draw(); 
    }
 </script>
 </body>
</html>

试试吧!!!!

温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/js20210208a2.html

网友评论文明上网理性发言 已有0人参与

发表评论:

最新留言

  • 访客

    Windows10要求电脑配置啊。...

  • ab234

    博主辛苦了,这个VUE分享很不错,收藏了。...

  • Web前端之家

    已加上...

  • 访客

    您好,我这边是http://www.liulanqi.com.cn/360/浏览器下载爱站权2,...

  • Web前端之家

    已加上...

  • WordPress主题

    已添加贵站友链网站名称:WordPress主题网站地址:https://www.bigethem...

  • jing35

    不可变数据类型...

  • aboy

    不错的flexbox教程,收藏。...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2021 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.6.7 Valyria