canvas 时钟

Posted aaronchu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas 时钟相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>canvas</title>
    <style type="text/css">
        #canvas{
            display: block;
            margin: 20px auto;
        }
    </style>
</head>
<body>
    <canvas id="canvas" width="300" height="300">
    </canvas>
</body>
<script type="text/javascript">
    var canvas = document.getElementById("canvas");
    var cans = canvas.getContext("2d");
    var ss=[],aa=0,dd=[],ww=[];
    var today=new Date();
    var hh=today.getMinutes();
    var zz=today.getHours()%12*5
    zz=zz+Math.floor(hh/12);
    var ll=today.getSeconds();
    cans.font = "bold 14px Arial";
    cans.textAlign="center";
    cans.textBaseline="middle";
    cans.fillStyle="green";
    for(var times=0; times<60; times++) {
      var hudu = (2*Math.PI / 360) * 6 * times;
      ss[times]={};
      dd[times]={};
      ww[times]={};
        ss[times].X = 150 + Math.sin(hudu) * 85;
        ss[times].Y = 150 - Math.cos(hudu) * 85;
        dd[times].X = 150 + Math.sin(hudu) * 65;
        dd[times].Y = 150 - Math.cos(hudu) * 65;
        ww[times].X = 150 + Math.sin(hudu) * 45;
        ww[times].Y = 150 - Math.cos(hudu) * 45;
        if(times%5==0)
      {
           if(aa==0)
           aa=12;
           cans.fillText(aa,150 + Math.sin(hudu) * 93,150 - Math.cos(hudu) * 93);
           if(aa==12)
           aa=0;
           aa++;
      }   
       }
           cans.beginPath();
           cans.arc(150,150,112,0,2*Math.PI,false);
           cans.moveTo(252,150);
           cans.arc(150,150,102,0,2*Math.PI,false);
           cans.strokeStyle = red;
           cans.stroke();
    function nihao(c,s){
            cans.strokeStyle = red;
            cans.moveTo(150,150);//第一个起点
            cans.lineTo(c,s);
    }
    function hao(){
           cans.beginPath();
           cans.moveTo(150,150);
           cans.arc(150,150,86,0,2*Math.PI,false);
           cans.fillStyle = white;
           cans.fill();
    }
        (function pageLoad(){
         hao();
          ll++;
          ll=ll%60;
            cans.beginPath();
           //第二个点
           nihao(ss[ll].X,ss[ll].Y);
           if(ll%60==0){
           hh++;
           hh=hh%60;
           }
           if(hh%12==0){
           zz++;
           zz=zz%60;
           }
            nihao(dd[hh].X,dd[hh].Y);
            nihao(ww[zz].X,ww[zz].Y);
            cans.stroke();
         setTimeout(arguments.callee,1000);
        })();
</script>
</html>

 

以上是关于canvas 时钟的主要内容,如果未能解决你的问题,请参考以下文章

canvas实现的时钟效果

应用canvas绘制动态时钟--每秒自动动态更新时间

如何在基于Canvas的模拟时钟中组装以下代码库,Clockface有28小时112分钟

Canvas实现弧线时钟

canvas基础绘制-绚丽时钟

canvas绘画时钟及倒计时时钟