• javascript 实现圆形时钟秒针同步


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <style type="text/css">
            #clock
            {
                border: 1px solid silver;
                width: 250px;
                height: 250px;
                position: relative;
                margin-left: 400px;
            }
        </style>
        <script type="text/javascript">
            //画圆时钟
            function drawClock() {
                //没一分钟就会画出一条秒针线,去掉之前的秒针线。
                document.getElementById("clock").innerHTML = "";
                //刻度盘
                for (var i = 0; i < 360; i++) {
                    var point = document.createElement("div");
                    point.style.backgroundColor = "red";
                    point.style.width = "1px";
                    point.style.height = "1px";
                    point.style.position = "absolute";//point.style.float在这里无法使用。所以使用定位来实现点的不同分布。
                    
                    //整点出用不同的点表示出来。如果能被30整除那么他就是1~12中的数字。
                    if (i % 30 == 0) {
                        point.style.backgroundColor = "black";
                        point.style.width = "3px";
                        point.style.height = "3px";
                        //Math.cos(x)三角函数在这里的参数x代表的弧度制。不是角度。所以需要把角度转换成弧度(角度*π/180)。
                        // (120 * Math.cos(i * Math.PI / 180) + 125)
                        point.style.left = (120 * Math.cos(i * Math.PI / 180) + 125) + "px";
                        point.style.top = (120 * Math.sin(i * Math.PI / 180) + 125) + "px";
                    }
                    else {
                        point.style.left = (125 * Math.cos(i * Math.PI / 180) + 125) + "px";
                        point.style.top = (125 * Math.sin(i * Math.PI / 180) + 125) + "px";
                    }
                    document.getElementById("clock").appendChild(point);
                }
                //秒针
                var today = new Date();//用来获取系统当前的时间,秒针的时间与系统时间同步
                for (var j = 0; j <= 110; j++) {
                    var point = document.createElement("div");
                    point.style.backgroundColor = "blue";
                    point.style.width = "1px";
                    point.style.height = "1px";
                    point.style.position = "absolute";
    
                    //通过保持夹角的不变。来画直线
                    //Math.cos(today.getSeconds() * 6 * Math.PI / 180 - Math.PI / 2) * j + 125
                    point.style.left = (Math.cos(today.getSeconds() * 6 * Math.PI / 180 - Math.PI / 2) * j + 125) + "px";
                    point.style.top = (Math.sin(today.getSeconds()*6 * Math.PI / 180 - Math.PI / 2) * j + 125) + "px";
                    document.getElementById("clock").appendChild(point);
                }            
    
                setTimeout(drawClock,1000);
            }
            
        </script>
    </head>
    <body onload="drawClock()">
        <div>
            <div id="clock">
            </div>
        </div>
    </body>
    </html>

    知识重点:

    使用javascript进行画图。

  • 相关阅读:
    [Beta阶段]第四次Scrum Meeting
    [Beta阶段]第三次Scrum Meeting
    [Beta阶段]第二次Scrum Meeting
    [Beta阶段]第一次Scrum Meeting
    [Alpha阶段]事后分析博客
    [Alpha阶段]无人转会申请
    Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time
    关于单选框、下拉框、复选框的数据回显问题以及全选和全不选
    学习spring和spring mvc过程中遇到的一些问题
    springmvc常用注解之@Controller和@RequestMapping
  • 原文地址:https://www.cnblogs.com/L-unatic/p/4022857.html
Copyright © 2020-2023  润新知