HTM5制作的闹钟

HTML5出来很久了一直没好好研究过,今天找视频看了,研究了一下,制作了一个闹钟。

效果图如下

 
  <div>
            <canvas id="Clock" width="500" height="500">your broswer can not see the clock </canvas>
            <script>

                var clock = document.getElementById("Clock");
                var cxt = clock.getContext("2d");
                function DrawClock() {
                    //clear canvas  //要先清空画布,才能保持画面的动画效果
                    cxt.clearRect(0, 0, 500, 500);
                    cxt.font = "20px Blackadder ITC";
                    cxt.fillText("My clock", 220, 150);
                    cxt.font = "14px Blackadder ITC";
                    cxt.fillText("---Made by Lan", 240, 170);
                    var image = new Image();
                    image.src = "1.png";
                    cxt.drawImage(image, 220, 280, 100, 100);
                    var now = new Date();
                    var sec = now.getSeconds();
                    var min = now.getMinutes();
                    var hour = now.getHours();  // must be hour+ min/60
                    hour = hour + min / 60;
                    hour = hour > 12 ? hour - 12 : hour;
                    //round, scale, niddle
                    cxt.beginPath();
                    cxt.arc(250, 250, 200, 0, 360, false);
                    cxt.strokeStyle = "#ABCDEF";
                    cxt.lineWidth = 9;
                    cxt.stroke();
                    cxt.closePath();
                    //scale  刻度,时刻
                    cxt.font = "30px Bold";
                    for (var i = 0; i < 12; i++) {
                        cxt.save();
                        cxt.lineWidth = 7;
                        cxt.strokeStyle = "Black";
                        cxt.translate(250, 250);
                        cxt.rotate(i * 30 * Math.PI / 180);
                        cxt.beginPath();
                        cxt.moveTo(0, -170);
                        cxt.lineTo(0, -190);
                        if (i == 0) {
                            cxt.fillText("12", -10, -145);
                        }
                        else {
                            cxt.fillText(i.toString(), -10, -145);
                        }
                        cxt.stroke();
                        cxt.closePath();
                        cxt.restore();
                    }
                  // 分
for (var j = 0; j < 60; j++) { cxt.save(); cxt.lineWidth = 4; cxt.translate(250, 250); cxt.rotate(j * 6 * Math.PI / 180); cxt.beginPath(); cxt.moveTo(0, -180); cxt.lineTo(0, -190); cxt.strokeStyle = "Black"; cxt.stroke(); cxt.closePath(); cxt.restore(); } cxt.beginPath(); cxt.save(); cxt.lineWidth = 7; cxt.strokeStyle = "Black"; cxt.translate(250, 250); cxt.rotate(hour * 30 * Math.PI / 180); cxt.moveTo(0, -150); cxt.lineTo(0, 10); cxt.stroke(); cxt.restore(); cxt.closePath(); cxt.beginPath(); cxt.save(); cxt.lineWidth = 5; cxt.strokeStyle = "Black"; cxt.translate(250, 250); cxt.rotate(min * 6 * Math.PI / 180); cxt.moveTo(0, -130); cxt.lineTo(0, 10); cxt.stroke(); cxt.restore(); cxt.closePath(); cxt.beginPath(); cxt.save(); cxt.lineWidth = 3; cxt.strokeStyle = "red"; cxt.fillStyle = "Black"; cxt.translate(250, 250); cxt.rotate(sec * 6 * Math.PI / 180);//秒 cxt.moveTo(0, 150); cxt.lineTo(0, -15); cxt.stroke(); cxt.beginPath(); cxt.arc(0, 0, 5, 0, 360, false); cxt.fillStyle = "gray"; cxt.strokeStyle = "red"; cxt.fill(); cxt.closePath(); cxt.beginPath(); cxt.arc(0, 130, 5, 0, 360, false); cxt.fillStyle = "black"; cxt.strokeStyle = "red"; cxt.fill(); cxt.stroke(); cxt.restore(); cxt.closePath(); } DrawClock(); setInterval(DrawClock, 1000); </script> </div>

 

需要注意的几个常见的方法
1. closePath,beginPath(),用路径画图的时候,需要注意在各个,打开路径,关闭路径
2. 在做旋转的时候要注意设置原点,translate(250,250);
 
 

HTM5制作的闹钟,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。