您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

用JavaScript实现简单网页时钟

51自学网 2022-05-02 21:34:31
  javascript

利用JavaScript实现网页时钟,效果如下图所示:

首先在body中完成表盘、指针的资源载入:

<div><img src="../../image/clockface.jpg" alt=""></div><hr id="hour" ><hr id="min"><hr id="second">

设置CSS样式:

<style>        body{            margin: 0;        }        div{            margin: 0 auto;            width: 600px;            height: 600px;        }        #hour{            background-color: black;            width: 130px;            height: 10px;            position: fixed;            top: 295px;            left: 50%;            margin-left: -65px;        }        #min{            background-color: red;            width: 200px;            height: 8px;            position: fixed;            top: 296px;            left: 50%;            margin-left: -100px;        }        #second{            background-color: yellow;            width: 270px;            height: 5px;            position: fixed;            top: 297.5px;            left: 50%;            margin-left: -135px;        }</style>

最后是JS代码部分,使用循环定时器setInterval()每秒调用一次主函数,主函数内使用new Date()创建时间对象,分别使用 .getHours();.getMinutes();.getSeconds()获得当前的时分秒,然后利用CSS自带动画-旋转改变指针的角度:

setInterval(watch,1000);var anjleSeconds=0,anjleMin=0,anjleHours=0;function watch() {        var Time= new Date();        anjleSeconds=Time.getSeconds()/60*360+90;        anjleMin=Time.getMinutes()/60*360+90;        anjleHours=nowHours/12*360+90;        document.getElementById("second").style.transform="rotate("+anjleSeconds+"deg)";        document.getElementById("min").style.transform="rotate("+anjleMin+"deg)";        document.getElementById("hour").style.transform="rotate("+anjleHours+"deg)";    }

目前存在的问题是,时分秒指针由于使用的是hr标签表示,所以存在两端一样长的问题。

完整代码如下:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>        body{            margin: 0;        }        div{            margin: 0 auto;            width: 600px;            height: 600px;        }        #hour{            background-color: black;            width: 130px;            height: 10px;            position: fixed;            top: 295px;            left: 50%;            margin-left: -65px;        }        #min{            background-color: red;            width: 200px;            height: 8px;            position: fixed;            top: 296px;            left: 50%;            margin-left: -100px;        }        #second{            background-color: yellow;            width: 270px;            height: 5px;            position: fixed;            top: 297.5px;            left: 50%;            margin-left: -135px;        }    </style></head><body><div><img src="../../image/clockface.jpg" alt=""></div><hr id="hour" ><hr id="min"><hr id="second"><script>    setInterval(watch,1000);    var anjleSeconds=0,anjleMin=0,anjleHours=0;    function watch() {        var Time= new Date();        anjleSeconds=Time.getSeconds()/60*360+90;        anjleMin=Time.getMinutes()/60*360+90;        anjleHours=Time.getHours()/12*360+90;        document.getElementById("second").style.transform="rotate("+anjleSeconds+"deg)";        document.getElementById("min").style.transform="rotate("+anjleMin+"deg)";        document.getElementById("hour").style.transform="rotate("+anjleHours+"deg)";    }</script></body></html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


JavaScript实现九宫格点击变色效果
JavaScript中async,await的使用和方法
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1