• 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);
     
     
  • 相关阅读:
    ThinkPHP中的json对象
    ThinkPHP修改默认错误页面
    E签宝签署短信后回调通知数据结构示例
    E签宝电子签章接口调试请求和响应示例
    Git如何撤销本地所有的更改操作还原到更改前的代码?
    使Egg.js编写RestfulAPI接口(六)路由分组
    使用Egg.js编写RestfulAPI接口(五)资源路由配置
    使用Egg.js编写RestfulAPI接口(四)使用PostMain测试Api接口
    使用Egg.js编写RestfulAPI接口(三)编写Api接口
    使用Egg.js编写RestfulAPI接口(二)配置跨域
  • 原文地址:https://www.cnblogs.com/huangll/p/HTML5.html
Copyright © 2020-2023  润新知