Canvas荧光时钟源码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>canvas钟表</title>
    <meta name="Keywords" content="canvas钟表">
    <style type="text/css">
    body{margin:0;}
</style>
</head>
<body onload="run()">
    <canvas id="canvas" width=320 height=320 >如果你看到这段文字,说明你的浏览器弱爆了!</canvas>
    <script>
        window.onload=draw;
        function draw() {
            var canvas=document.getElementById('canvas');
            var context=canvas.getContext('2d');
            context.save();
            //改变表盘中心位置
            context.translate(160,160);
            var deg=2*Math.PI/12; 
            context.save(); 
            context.beginPath(); 
            for(var i=0;i<13;i++){
                var x=Math.sin(i*deg);
                var y=-Math.cos(i*deg);
                context.lineTo(x*160,y*160); 
            }
            var c=context.createRadialGradient(0,0,0,0,0,130);
            //改变表盘背景颜色(可渐变)
            c.addColorStop(0,"#000000");
            c.addColorStop(1,"#000000")
            context.fillStyle=c;
            context.fill();
            context.closePath(); 
            context.restore(); 

            context.save();
            context.beginPath();
            for(var i=1;i<13;i++){
                var x1=Math.sin(i*deg);
                var y1=-Math.cos(i*deg);
                context.fillStyle="green";
                context.font="bold 20px Calibri";
                context.textAlign='center';
                context.textBaseline='middle';
                context.fillText(i,x1*120,y1*120); 
            }
            context.closePath(); 
            context.restore(); 

            context.save();
            context.beginPath(); 
            for(var i=0;i<12;i++){
                var x2=Math.sin(i*deg);
                var y2=-Math.cos(i*deg);
                context.moveTo(x2*148,y2*148);
                context.lineTo(x2*135,y2*135); 
            } 
            context.strokeStyle='green';
            context.lineWidth=4;
            context.stroke();
            context.closePath();
            context.restore(); 

            context.save();
            var deg1=2*Math.PI/60;
            context.beginPath(); 
            for(var i=0;i<60;i++){
                var x2=Math.sin(i*deg1);
                var y2=-Math.cos(i*deg1);
                context.moveTo(x2*146,y2*146);
                context.lineTo(x2*140,y2*140); 
            } 
            context.strokeStyle='green';
            context.lineWidth=2;
            context.stroke();
            context.closePath(); 
            context.restore(); 

            context.save();
            // 表盘文字颜色、字体大小等
            context.strokeStyle="green";
            context.font=' 13px sans-serif';
            context.textAlign='center';
            context.textBaseline='middle';
            // 改变表盘中间文字内容
            context.strokeText(getwork(),0,45); 
            context.strokeText(startTime(),0,65);
            context.strokeText(nyr(),0,85); 
            context.restore(); 

            var time=new Date();
            var h=(time.getHours()%12)*2*Math.PI/12;
            var m=time.getMinutes()*2*Math.PI/60;
            var s=time.getSeconds()*2*Math.PI/60;
            context.save();
            context.rotate( h + m/12 + s/720) ;
            context.beginPath();
            context.moveTo(0,6);
            context.lineTo(0,-85);
            context.strokeStyle="green";
            context.lineWidth=6;
            context.stroke();
            context.closePath();
            context.restore();

            context.save();
            context.rotate( m+s/60 ) ;
            context.beginPath();
            context.moveTo(0,8);
            context.lineTo(0,-105);
            context.strokeStyle="green";
            context.lineWidth=4;
            context.stroke();
            context.closePath();
            context.restore();

            context.save();
            context.rotate( s ) ;
            context.beginPath();
            context.moveTo(0,10);
            context.lineTo(0,-120);
            context.strokeStyle="green";
            context.lineWidth=2;
            context.stroke();
            context.closePath();
            context.restore(); 
            context.restore();
            setTimeout(draw, 1000);
        }
        // 当前时间
        function startTime(){
            var today=new Date();
            var h=today.getHours();
            var m=today.getMinutes();
            var s=today.getSeconds();
            m=checkTime(m);
            s=checkTime(s);
            return h+":"+m+":"+s;
            t=setTimeout(function(){startTime()},500);
        }
        function checkTime(i){
            if (i<10){
                i="0" + i;
            }
            return i;
        }
        // 当前星期
        function getwork(){
            var l = ["日","一","二","三","四","五","六"];
            var d = new Date().getDay();
            var str = '星期'+l[d];
            return str;
        }
        // 当前年月日
        function nyr(){
            var myDate = new Date();
            return myDate.toLocaleDateString();

        }
    </script>
</body>
</html>

版权声明:如无特殊注明,本文均为《星空娱乐》原创,转载请保留文章出处。

本文链接:Canvas荧光时钟源码 - https://m.71xk.com/post-18.html

最后编辑:2019-11-16 18:11:45



发表评论 / Comment

抱歉,本文章评论通道暂时关闭。