Сейчас: 17:37:15   25-го апреля 2024 г.
UsefulScript.ruСкриптыДата и времяАналоговые часы на JS
31
96

Аналоговые часы на JavaScript

Многие вебмастера добавляют на свои сайты разнообразные идущие часы. В данной теме мы рассмотрим JavaScript код для создания аналоговых часов, отображающих текущее время.


Идущие аналоговые часы, скрипт которых мы будем рассматривать, расположены чуть ниже:


Для получения на своем сайте аналогичных идущих часов на JavaScript, воспользуйтесь кодом, расположенным ниже. Для корректного отображения аналоговых часов на своем сайте, рекомендуем Вам поместить данный код в отдельный файл, и подгружать его в iframe, иначе могут возникнуть сложности с размещением.

JavaScript код:
<style type="text/css">
.
clock_style {
    
width30px;
    
height30px;
    
padding-top10px;
    
font-size11px;
    
text-aligncenter;
    
color#0000FF;
}
.
clock {
    
positionabsolute;
    
top0px;
    
left0px;
}
.
clock2 {
    
positionabsolute;
    
width2px;
    
height2px;
    
font-size2px;
}
</
style>

<
script type="text/javascript">
var 
Rad 45;
var 
sec_Col 'style="background: #FF0000;"';
var 
min_Col 'style="background: #0000FF;"';
var 
hr_Col 'style="background: #000000;"';
var 
HH "....";
var 
MM "......";
var 
SS "........";
var 
Rad 15;
var 
document;

NS6 = (d.getElementById&&!d.all);
IE4 = (d.all);
if (
NS6){
for (
i=1i<13i++){
d.write('<div id="Digits' '" class="clock clock_style">' '</div>');
}
for (
i=0i<HH.lengthi++){
d.write('<div id="Oz' '" class="clock clock2" ' hr_Col '></div>');
}
for (
i=0i<MM.lengthi++){
d.write('<div id="Oy' '" class="clock clock2" ' min_Col '></div>');
}
for (
i=0i<SS.lengthi++){
d.write('<div id="Ox' '" class="clock clock2" ' sec_Col '></div>');
}
}
if (
IE4){
d.write('<div class="clock"><div style="position:relative">');
for (
i=1i<13i++){
d.write('<div id="Digits" class="clock clock_style">' '</div>');
}
d.write('</div></div>');
d.write('<div class="clock"><div style="position:relative">');
for (
i=0i<HH.lengthi++){
d.write('<div id="z" class="clock2" ' hr_Col '></div>');
}
d.write('</div></div>');
d.write('<div class="clock"><div style="position:relative">');
for (
i=0i<MM.lengthi++){
d.write('<div id="y" class="clock2" ' min_Col '></div>');
}
d.write('</div></div>');
d.write('<div class="clock"><div style="position:relative">');
for (
i=0i<SS.lengthi++){
d.write('<div id="x" class="clock2" ' sec_Col '></div>');
}
d.write('</div></div>');
}

function 
start_clock(){
time = new Date();
sec Math.PI*time.getSeconds()/30 1.57;
min Math.PI*time.getMinutes()/30 1.57;
hr Math.PI*time.getHours()/Math.PI*parseInt(time.getMinutes())/360 1.57;
if (
NS6){
for (
i=1i<13i++){
 
d.getElementById("Digits"+i).style.top Y-15+Rad*Math.sin(i*Math.PI/6-1.51)
 
d.getElementById("Digits"+i).style.left X-15+Rad*Math.cos(i*Math.PI/6-1.51)
 }
for (
i=0i<HH.lengthi++){
 
d.getElementById("Oz"+i).style.top Y+i*Rad/9*Math.sin(hr);
 
d.getElementById("Oz"+i).style.left X+i*Rad/9*Math.cos(hr);
 }
for (
i=0i<MM.lengthi++){
 
d.getElementById("Oy"+i).style.top Y+i*Rad/9*Math.sin(min);
 
d.getElementById("Oy"+i).style.left X+i*Rad/9*Math.cos(min);
 }
for (
i=0i<SS.lengthi++){
 
d.getElementById("Ox"+i).style.top Y+i*Rad/9*Math.sin(sec);
 
d.getElementById("Ox"+i).style.left X+i*Rad/9*Math.cos(sec);
 }
}
if (
IE4){
for (
i=0i<12;++i){
 
Digits[i].style.pixelTop Y-15+Rad*Math.sin(i*Math.PI/6-1.045);
 
Digits[i].style.pixelLeft X-15+Rad*Math.cos(i*Math.PI/6-1.045);
 }
for (
i=0i<HH.lengthi++){
 
z[i].style.pixelTop Y+i*Rad/9*Math.sin(hr);
 
z[i].style.pixelLeft X+i*Rad/9*Math.cos(hr);
 }
for (
i=0i<MM.lengthi++){
 
y[i].style.pixelTop Y+i*Rad/9*Math.sin(min);
 
y[i].style.pixelLeft X+i*Rad/9*Math.cos(min);
 }
for (
i=0i<SS.lengthi++){
 
x[i].style.pixelTop Y+i*Rad/9*Math.sin(sec);
 
x[i].style.pixelLeft X+i*Rad/9*Math.cos(sec);
 }
}
setTimeout("start_clock()"100);
}
start_clock();
</script>

Пусть размер данного кода Вас не пугает, так как он делался с учетом старых браузеров и большая его часть не участвует для отображения времени для конкретного пользователя.


Если Вы все сделали правильно (восстановили разорванные строчки), то у Вас должны получиться точно такие же идущие аналоговые часы, как и в примере, показанном выше.

Дата создания: 22:26:30 02.10.2012 г.
Дата обновления: 20:24:51 12.10.2012 г.
Посещений: 14035 раз(а).

Комментарии посетителей (2 шт.):
Булат
0
# 3131
(20:46:09  27.03.2016 г.)

Отличные часы, как смотрю по примеру! Но, к сожалению, я не смог их завести :( После соединения разорванных строк, в левом верхнем углу виден синий квадратик, при выделении мышкой видно - цифра 12. Это значит, что, может, часы и работает, но не работают стили?
Автор, не могли бы "почистить" скрипт (от старых браузеров, которые уже, спустя четыре года, по-любому не используются) и выложить обновленный вариант? Был бы очень благодарен... А то я очень мало чего понимаю в яваскрипте, и очень большую часть этих кодов вообще не могу "прочитать".
Ответить

Administrator
0
# 3132
(22:18:10  27.03.2016 г.)

Видать где-то все-таки пропустили перенесенную строчку.
На форуме выложил новый скрипт без поддержки старых браузеров.
Ответить

Закрыть
Ваше имя:
331 + 4 =
Добавить комментарий:
Ваше имя:
331 + 4 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 9

Какой браузер Вы используете?