一款简单、时尚、响应灵敏的模拟时钟,使用CSS3 2D变换旋转指针。
1.为模拟时钟创建HTML。
- <div id="clockContainer">
- <div id="hour"></div>
- <div id="minute"></div>
- <div id="second"></div>
- </div>
2.在CSS中设置指针和钟面的样式。
- #clockContainer {
- top: 3vw;
- position: relative;
- width: 40vw;
- height: 40vw;
- background: url(clock.png) no-repeat;
- background-size: 100%;
- margin: auto;
- opacity: 0.8;
- }
- #hour, #minute, #second {
- position: absolute;
- background-color: black;
- border-radius: 10px;
- transform-origin: bottom;
- }
- #hour {
- height: 26%;
- width: 1.8%;
- top: 24%;
- left: 48.9%;
- opacity: 1;
- background-color: rgb(7, 1, 61);
- }
- #minute {
- height: 32%;
- width: 1.2%;
- top: 17%;
- left: 49%;
- opacity: 0.7;
- background-color: rgb(7, 1, 61);
- }
- #second {
- background-color: red;
- height: 38%;
- width: 0.8%;
- top: 12%;
- left: 49.4%;
- opacity: 0.7;
- }
3.在文档中加载最新的jQuery库(建议使用瘦版本)。
- <script src="/path/to/cdn/jquery.slim.min.js"></script>
4.激活模拟时钟。
- setInterval(() => {
- date= new Date();
- h=date.getHours();
- m=date.getMinutes();
- s=date.getSeconds();
- console.log(h+":"+m+":"+s);
- hrotation= 30*h + m/2;
- mrotation= 6*m;
- srotation= 6*s;
- console.log(hrotation+":"+mrotation+":"+srotation);
- $("#hour").css("transform", `rotate(${hrotation}deg)`);
- $("#minute").css("transform", `rotate(${mrotation}deg)`);
- $("#second").css("transform", `rotate(${srotation}deg)`);
- }, 1000);