Таймер

 
0
 
JavaScript
Ответы (6)
ava
guest | 18.01.2004, 13:53 #
Уважаемые форумчане !
Помогите чайнику. У меня проблема следующего плана:
Хотелось бы что бы на странице показывалось сколько пользователь находится на ней в формате мм:сс. С помощью двух опреаторов setInterval элементарно получается создать два счетчика: один считает минуты, другой секунды. А вот как их совместить друг с другом не пойму. Условие: нужно создать такие часики только с sеtTimeout или setInterval.
Нужно что бы когда счетчик секунд сделал первый круг, он обнулялся, а на счетчике минут появлялось 1 мин, а счетчик секунд считал бы дальше. Реально ли это сделать в JavaScript?
С уважением Ольга
ava
Sardar | 18.01.2004, 15:18 #
Достаточно считать только секунды, можно так:

<script language="Javascript" type="text/javascript">
mins=59;
secs=57;
function time() {
if(++secs>=60) {
secs=0;
if(++mins>=60) {
mins=0;
document.all.min.style.background="#ff0000"; //время вышло
}
}
document.all.min.innerText=mins;
document.all.sec.innerText=secs;
window.setTimeout("time();",1000);
}
</script>
</head>
<body onLoad='window.setTimeout("time();",1000);'>
<table>
<tr><td id=min>0</td><td id=sec>0</td></tr>
</table>
ava
guest | 18.01.2004, 23:13 #
Спасибо огромное, Sardar.
Перед тем как посмотреть ответил ли мне кто нибудь я уже поняла, что можно делать только один счетчик, а второй сделать зависимым от него. Вот только как это реализовать сама не додумалась ))).
Я немножко переделала Ваш код. А то при начальных условиях в Вашем коде сначала не было нулей. Вобщем вот что получилось ))) :

<html>
<head>
<title>Таймер</title>
<script>
setTimeout("time()",1000);
mins=0;
secs=0;
function time() {
secs++;
if(secs>59) {
secs=0;
mins++;
if(mins>59) {
mins=0;
}
}
sec.innerHTML=zero(secs);
mint.innerHTML=mins;
setTimeout("time();",1000);
}

function zero(num) {
return (num < 10)? "0" + num:num;
}
</script>
</head>
<body'>
<table>
<tr><td>Вы находитесь на этой странице</td><td id="mint">0</td>
<td>мин</td><td id="sec">0</td><td>сек</td></tr>
</table>
</body>
</html>




Еще раз спасибо )))

ava
Sardar | 18.01.2004, 23:30 #
С mins=59; secs=57; я хотел показать что пользователь может находится на странице больше чем один час. Впрочем тебе решать smile.
Используй innerText если меняешь просто текст.
ava
adamant | 05.03.2006, 22:53 #
А как сделать так, что бы считать в обратном направлении? Например...
Начальное положение = 59м : 59с
А после достижения 00 : 00
Счётчик сбрасывался сново на начальное положение?
ava
12345c | 05.03.2006, 23:22 #
http://js2.ru/example/JsPrimeryCode-46.htm

(При достижении 00:00 сменится час, но его можно не показывать.)
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  guest   Sardar   12345c   adamant
advanced
Отправить