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进行画图。

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