-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCLOCK_SVG.html
More file actions
80 lines (69 loc) · 3.28 KB
/
Copy pathCLOCK_SVG.html
File metadata and controls
80 lines (69 loc) · 3.28 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
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CLOCK_SVG</title>
<style>
#circl { stroke-width: 1px; stroke: #FCCA66; fill: #FCCA66;}
#hour, #min, #sec { stroke-width: 1px; fill: grey; stroke: black; stroke-linejoin: round }
#sec { stroke: #000; }
#elem { width:50%; margin:0 auto; }
.number{ font-size: 0.3em; fill: #000}
</style>
</head>
<body>
<div id="elem">
<svg id="clock" viewBox="0 0 100 100">
<circle id="circl" cx="50" cy="50" r="45"/>
<g></g>
<rect id="hour" x="48.5" y="25" width="2" height="30"/>
<rect id="min" x="49" y="15" width="1" height="40"/>
<line id="sec" x1="50" y1="50" x2="50" y2="10"/>
</svg>
</div>
<script>
//функция по интервалу , запускается каждую секунду
setInterval(function() {
//функция расчета градуса поворота для каждой стрелки путем добавления атрибута по id
function time(elemClock, deg) {
elemClock.setAttribute('transform', 'rotate('+ deg +' 50 50)')
}
//получаем текущее время и создаем переменную
var date = new Date()
//получаем аргумент для функции time
time(sec, 6*date.getSeconds()) //60*6=360
time(min, 6*date.getMinutes())
time(hour, 30*(date.getHours()%12) + date.getMinutes()/2)
//360/30 = 12 часа , %12 проводим к стрелочным
//+ добавляем мин
}, 1000)
var ciratr = document.querySelector('svg #circl');
var r = +ciratr.attributes[3].value - 10 ;// получаем радиус окужности часов
for (var i = 0; i < 12; i++) {
var g = document.querySelector('g');
var arc = (i * 30) * Math.PI / 180;//радианы
var circle=document.createElementNS("http://www.w3.org/2000/svg",'circle');
circle.className = "num";
circle.setAttribute('r','5');
circle.setAttribute("fill","green");
circle.setAttribute('cy', r - r * Math.cos(arc)+15);
circle.setAttribute('cx', r + r * Math.sin(arc)+15);
g.appendChild(circle);
}
for (var i = 1; i < 13; i++) {
var g = document.querySelector('g');
var arc = (i * 30) * Math.PI / 180;//радианы
var txt=document.createElementNS("http://www.w3.org/2000/svg",'text');
txt.setAttribute('y', r - r * Math.cos(arc)+17);
txt.setAttribute('x', r + r * Math.sin(arc)+15);
txt.setAttribute('text-anchor', 'middle');
txt.style.fill = "black";
txt.style.fontSize = '5';
txt.textContent= +i;
g.appendChild(txt);
}
</script>
</body>
</html>