Use JavaScript to implement a web page clock. The effect is shown in the figure below: First, complete the loading of the resources of the dial and pointer in the body: <div><img src="../../image/clockface.jpg" alt=""></div> <hr id="hour" > <hr id="min"> <hr id="second"> Set CSS style: <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> Finally, the JS code part uses the loop timer setInterval() to call the main function once a second. In the main function, new Date() is used to create a time object. .getHours(); .getMinutes(); .getSeconds() are used to obtain the current hours, minutes, and seconds. Then, the CSS built-in animation-rotation is used to change the angle of the pointer: 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)"; } The current problem is that the hour, minute, and second hands are the same length at both ends because they are represented by the hr tag. The complete code is as follows: <!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> The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Automatically build and deploy using Docker+Jenkins
>>: The best explanation of HTTPS
<base target=_blank> changes the target fram...
Every time you log in to the test server, you alw...
To create a flex container, simply add a display:...
Problem Description In the recent background serv...
Basic Concepts Before operation, you must first u...
Table of contents Preface 1. With vue-cli 1. Defi...
Last night, I was looking at an interview question...
Methods for changing passwords before MySQL 5.7: ...
1. flex-grow, flex-shrink, flex-basis properties ...
Find the problem Let's look at the problem fi...
This article uses examples to illustrate the comm...
I just happened to encounter this small requireme...
No more nonsense, post code HTML part <div cla...
This article mainly introduces the implementation...
The online search to modify the grub startup time...