-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclock.ts
More file actions
52 lines (43 loc) · 1.26 KB
/
clock.ts
File metadata and controls
52 lines (43 loc) · 1.26 KB
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
const angleMid: number = 90;
var s: any;
class Arrow {
src: HTMLElement;
angle: number;
getTime: any;
begin: any;
constructor(src: any, angle: number) {
this.src = (<HTMLElement>document.querySelector(src));
this.angle = angle;
this.getTime = null;
this.begin = null;
}
move(): void {
this.src.style.transform = ` rotate(${this.begin}deg) `;
this.begin += this.angle;
}
}
var hour = new Arrow('.arrow-hour', 0.5 / 60 / 100);
var min = new Arrow('.arrow-min', 0.001);
var sec = new Arrow('.arrow-sec', 0.06);
let change = (): any => {
var nowDate: any = new Date();
sec.getTime = nowDate.getSeconds();
min.getTime = nowDate.getMinutes();
hour.getTime = nowDate.getHours();
return {
secBegin: (sec.angle * 100 * sec.getTime) - angleMid,
minBegin: ((sec.angle * 100 * min.getTime) - angleMid) + (min.angle * sec.getTime),
hourBegin: ((sec.angle * 500 * hour.getTime) - angleMid) + ((hour.angle) * sec.getTime)
}
};
sec.begin = change().secBegin;
min.begin = change().minBegin;
hour.begin = change().hourBegin;
let start = (): void => {
hour.move();
min.move();
sec.move();
}
window.onload = (): void => {
s = setInterval(start, 10);
}