zoukankan      html  css  js  c++  java
  • 利用js+canvas实现的时钟效果图

    canvas+js时钟特效

    运用js+canvas方面的知识完成一个时钟的效果图,再利用for循环实现指针的转动效果:

    <!--网页文档的声明-->
    <!doctype html>
    <html>
    <!--网页的头部-->
     <head>
      <meta charset="UTF-8">
      <!--网页三要素-->
      <meta name="Keywords" content="关键词">
      <meta name="Description" content="关键词描述">
      <title>时钟效果</title>
      <!--CSS层叠样式表   加工 修饰-->
      <style type="text/css">
        *{margin:0;padding:0;}
        body{background:url("img/2.jpg");}
        #canvas{margin:100px auto;display:block;}
      </style>
     </head>
     <!--网页的主体-->
     <body>
        <canvas id="canvas" width="500" height="500">
            你的浏览器需要更新了更新请前往 www.xxx.com*——*
        </canvas>
        <script type="text/javascript">
            var canvas = document.getElementById('canvas');//获取上下文
            var cxt = canvas.getContext('2d');//绘图轨迹  线  圆 矩形..
            /*圆
            cxt.beginPath();//开始
            //cxt.fillStyle = "#006633";填充颜色
            cxt.strokeStyle = "#ff00ff";
            cxt.arc(250,250,200,0,360,false);//画圆方法
            //cxt.fill();填充
            cxt.stroke();
            cxt.closePath();//结束
            */
            clock()
            function clock(){
                cxt.clearRect(0,0,500,500)
                var now = new Date();
                var sec = now.getSeconds();
                var min = now.getMinutes();
                var hour = now.getHours();
                    hour = hour + min/60;
                    hours = hour>12?hour-12:hour;
                //表盘
                cxt.beginPath();
                cxt.lineWidth =10;//线宽
                cxt.strokeStyle = "#00ccff";
                cxt.arc(250,250,200,0,360,false);
                cxt.stroke();
                cxt.closePath();
                //分秒刻度 60个
                for (var i=0;i<60 ;i++ )
                {
                    cxt.save();
                    cxt.translate(250,250);
                    cxt.rotate(6*i*Math.PI/180);
                    cxt.lineWidth = "7";
                    cxt.strokeStyle ="#fff";
                    cxt.beginPath();
                    cxt.moveTo(0,-180);
                    cxt.lineTo(0,-190);
                    cxt.stroke();
                    cxt.closePath();
                    cxt.restore();
                }
                //时刻度
                for (var i =0;i<12 ;i++ )
                {
                    cxt.save();
                    cxt.translate(250,250);
                    cxt.rotate(30*i*Math.PI/180);
                    cxt.lineWidth = "7";
                    cxt.strokeStyle ="#ff0000";
                    cxt.beginPath();
                    cxt.moveTo(0,-175);
                    cxt.lineTo(0,-195);
                    cxt.stroke();
                    cxt.closePath();
                    cxt.restore();
                }
                //时针
                cxt.save();//保存
                cxt.strokeStyle = "yellow"
                cxt.translate(250,250);
                cxt.rotate(30*hours*Math.PI/180);
                cxt.beginPath();
                cxt.moveTo(0,-100);
                cxt.lineTo(0,20);
                cxt.stroke();
                cxt.closePath();
                cxt.restore();
                //分针
                cxt.save();//保存
                cxt.strokeStyle = "#00ff00";
                cxt.lineWidth ="7";
                cxt.translate(250,250);
                cxt.rotate(6*min*Math.PI/180);
                cxt.beginPath();
                cxt.moveTo(0,-130);
                cxt.lineTo(0,20);
                cxt.stroke();
                cxt.closePath();
                cxt.restore();
                //秒针
                cxt.save();
                cxt.strokeStyle = "red";
                cxt.lineWidth ="3";
                cxt.translate(250,250);
                cxt.rotate(6*sec*Math.PI/180);
                cxt.beginPath();
                cxt.moveTo(0,-150);
                cxt.lineTo(0,20);
                cxt.stroke();
                cxt.closePath();
                cxt.beginPath();
                cxt.fillStyle ="gray";
                cxt.arc(0,0,5,0,360,false);
                cxt.fill();
                cxt.beginPath();
                cxt.strokeStyle ="red";
                cxt.arc(0,0,6,0,360,false);
                cxt.stroke();
                cxt.beginPath();
                cxt.lineWidth ="1";
                cxt.strokeStyle ="red";
                cxt.moveTo(0,-150);
                cxt.lineTo(4,-130);
                cxt.stroke();
                cxt.beginPath();
                cxt.lineWidth ="1";
                cxt.strokeStyle ="red";
                cxt.moveTo(0,-150);
                cxt.lineTo(-4,-130);
                cxt.stroke();
                
                
                cxt.restore();
            }
            setInterval(clock,1000)
            
            //console.log(hour+'时'+min+'分'+sec+'秒')
        </script>
     </body>
    </html>
  • 相关阅读:
    Nginx配置文件详解
    JVM调优—性能分析神器-JProfiler详解
    Navicat Premium 15破解
    Nginx配置反向代理,负载均衡,动静分离,高可用
    Nginx安装和常用命令
    Spring中ApplicationContextAware的作用
    java中发起http和https请求
    MySql高可用架构
    matlab画3维meshgrid/plot3/mesh/surf的用法
    如何规范地编写一个MATLAB函数文件
  • 原文地址:https://www.cnblogs.com/duzheqiang/p/5734674.html
Copyright © 2011-2022 走看看