HTML5小时钟


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<style>
    canvas{
        background: #eee;
    }
</style>
<script>
    window.onload=function(){
        var con=document.getElementById('con');
        var oCanvas=con.getContext("2d");
        var startX=200;
        var startY=200;
        var radius=100;
        

        setInterval(function(){
            oCanvas.clearRect(0, 0, 400, 400);
            // 阴影
            oCanvas.shadowColor="#888";
            oCanvas.shadowOffsetX=1;
            oCanvas.shadowOffsetY=1;
            oCanvas.shadowBlur=3;

            // 渐变
            var grd=oCanvas.createRadialGradient(startX, startY,1, startX, startY,100);
            grd.addColorStop(0, '#efefef');
            grd.addColorStop(1, "#cecece");
            oCanvas.fillStyle=grd;
            oCanvas.lineWidth=5;
            oCanvas.beginPath();
            oCanvas.strokeStyle="#a34";
            oCanvas.arc(startX, startY, radius, 0, 2*Math.PI);
            oCanvas.stroke();
            oCanvas.fill();

            // 去掉阴影
            oCanvas.shadowColor="#888";
            oCanvas.shadowOffsetX=0;
            oCanvas.shadowOffsetY=0;
            oCanvas.shadowBlur=0;

            // 画刻度
            dragMark();
            var myDate=new Date();
            var H=myDate.getHours()*30+myDate.getMinutes()/2-90;
            var M=myDate.getMinutes()*6-90;
            var S=myDate.getSeconds()*6-90;
            // 时针
            dragT("#000",4,55,H);
            // 分针
            dragT("#888",3,65,M);
            // 秒针
            dragT("#f10",2,80,S);
            // 画中心点
            oCanvas.beginPath();
            oCanvas.fillStyle="#ccc";
            oCanvas.arc(200, 200, 6, 0, 2*Math.PI);
            oCanvas.fill();
        }, 1000);

        

        

        
        
        function dragT(color,lw,radius,angle){
            oCanvas.beginPath();
            oCanvas.strokeStyle=color;
            oCanvas.lineWidth=lw;
            oCanvas.moveTo(startX, startY);
            oCanvas.lineTo(startX+radius*Math.cos(angle*Math.PI/180), startY+radius*Math.sin(angle*Math.PI/180));
            oCanvas.stroke();
        }

        function dragMark(){
            for(var i = 0; i < 60; i++) {
                var lw=2;
                var radius1=radius-5;
                var angle=i*6*Math.PI/180;
                oCanvas.strokeStyle="#888";
                if (i%5==0) {
                    radius1=radius-8;
                    lw=3;
                    oCanvas.strokeStyle="#666";
                };
                // if(i%15==0){
                //     var s=(i*6-90)*Math.PI/180;
                //     oCanvas.fillStyle="#000"
                //     oCanvas.fillText(i/5, startX+(radius-15)*Math.cos(s), startY+(radius-15)*Math.sin(s));
                // }
                oCanvas.lineWidth=lw;
                oCanvas.beginPath();
                oCanvas.moveTo(startX+radius*Math.cos(angle), startY+radius*Math.sin(angle));
                oCanvas.lineTo(startX+radius1*Math.cos(angle), startY+radius1*Math.sin(angle));
                oCanvas.stroke();
            };
            
        }
    }
</script>
</head>
<body>
    <canvas width="400" height="400" id="con"></canvas>
</body>
</html>


 

效果图~

原文地址:https://www.cnblogs.com/JerryWang24/p/3974309.html