本文实例为大家分享了JS+CSS实现动态时钟的具体代码,供大家参考,具体内容如下
知识点总结:
document.querySelector()方法返回文档中匹配指定 CSS 选择器的一个元素。
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
HTML+js部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< link rel = "stylesheet" href = "shiying.css" >
< title >Document</ title >
</ head >
< body >
< div class = "clock" >
< div class = "hour" >
< div class = "hr" id = "hr" ></ div >
</ div >
< div class = "min" >
< div class = "mn" id = "mn" ></ div >
</ div >
< div class = "sec" >
< div class = "sc" id = "sc" ></ div >
</ div >
</ div >
< script type = "text/javascript" >
const deg = 6;
const hr = document.querySelector('#hr');
const mn = document.querySelector('#mn');
const sc = document.querySelector('#sc');
setInterval(() => {
let day = new Date();
let hh = day.getHours() * 30;
let mm = day.getMinutes() * deg;
let ss = day.getSeconds() * deg;
hr.style.transform = `rotateZ(${(hh) + (mm / 12)}deg)`;
mn.style.transform = `rotateZ(${mm}deg)`;
sc.style.transform = `rotateZ(${ss}deg)`;
})
</ script >
</ body >
</ html >
|
CSS部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
*{
margin : 0 ;
padding : 0 ;
box-sizing: border-box;
}
body{
display : flex;
justify- content : center ;
align-items: center ;
min-height : 100 vh;
background : #091921 ;
}
.clock{
width : 350px ;
height : 350px ;
display :flex;
justify- content : center ;
align-items: center ;
background : url ( 1613462007944 .png);
background- size : cover;
border : 4px solid #091921 ;
border-radius: 50% ;
box-shadow: 0 -15px 15px rgba( 255 , 255 , 255 , 0.05 ),
inset 0 -15px 15px rgba( 255 , 255 , 255 , 0.05 ),
0 -15px 15px rgba( 0 , 0 , 0 , 0.05 ),
inset 0 -15px 15px rgba( 0 , 0 , 0 , 0.05 );
}
.clock:before
{
content : "" ;
position : absolute ;
width : 15px ;
height : 15px ;
background : #fff ;
border-radius: 50% ;
z-index : 10000 ;
}
.clock .hour,
.clock .min,
.clock .sec
{
position : absolute ;
}
.clock .hour, .hr{
width : 160px ;
height : 160px ;
}
.clock .min, .mn{
width : 190px ;
height : 190px ;
}
.clock .sec, .sc{
width : 230px ;
height : 230px ;
}
.hr, .mn, .sc{
display : flex;
justify- content : center ;
position : absolute ;
border-radius: 50% ;
}
.hr:before{
content : "" ;
position : absolute ;
width : 8px ;
height : 80px ;
background : #ff105e ;
z-index : 10 ;
border-radius: 6px 6px 0 0 ;
}
.mn:before{
content : "" ;
position : absolute ;
width : 4px ;
height : 90px ;
background : #fff ;
z-index : 11 ;
border-radius: 6px 6px 0 0 ;
}
.sc:before{
content : "" ;
position : absolute ;
width : 4px ;
height : 150px ;
background : #fff ;
z-index : 12 ;
border-radius: 6px 6px 0 0 ;
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_44717486/article/details/113826046