Показать сообщение отдельно
  #1 (permalink)  
Старый 27.02.2014, 00:10
Новичок на форуме
Отправить личное сообщение для VTrial Посмотреть профиль Найти все сообщения от VTrial
 
Регистрация: 27.02.2014
Сообщений: 5

Обратный секундный таймер
Вечер добрый, уважаемые!
Есть обратный таймер, который считает мин. и сек.
Код:
<span id="timer" long="00:29">00:30</span>
<script>
var t = setInterval (function ()
   {
   function f (x) {return (x / 100).toFixed (2).substr (2)}
   var o = document.getElementById ('timer'), w = 60, y = o.innerHTML.split (':'),
   v = y [0] * w + (y [1] - 1), s = v % w, m = (v - s) / w; if (s < 0)
   var v = o.getAttribute ('long').split (':'), m = v [0], s = v [1];
   o.innerHTML = [f (m), f (s)].join (':');
   }, 1000);
</script>
Для задания, мне необходимо, чтобы таймер считал только секунды, предварительно брав значения переменной.
Т.к. я в JS не разбираюсь, прошу вашей помощи разобраться в коде.

Мои догадки:
Допустим наша переменная $time = 59;
Вывод должен выглядеть по идеи так:
Код:
<span id="timer" long="00:<? echo $time?>">00:<? echo $time?></span>
А теперь по полочкам:
Это, я так понял, задает переменной t выполнение определенного действия раз в 1000 мсек (1 сек).
Код:
var t = setInterval (function ()
   {
..........
}, 1000);
Без малейшего понятия, что это и для чего:
Код:
function f (x) {return (x / 100).toFixed (2).substr (2)}
Далее берем значение с html разметки по ид "timer", присваиваем значение переменной w и разбиваем полученную строку из разметки на 2 части, где разделитель ":" ?!
Код:
var o = document.getElementById ('timer'), w = 60, y = o.innerHTML.split (':'),
Затем проводим математические действия, где y[0] - это значение до ":" и y[1] - после ":";
s - это секунды, однако действие v%w мне не понятно;
m - минуты, тут все понятно (наверное).
Код:
var o = document.getElementById ('timer'), w = 60, y = o.innerHTML.split (':'),
После берем значение с атрибута "long", разделяя на 2, до : и после, присваивая значения переменным.
Код:
var v = o.getAttribute ('long').split (':'), m = v [0], s = v [1];
Ну и сам вывод:
Выводим значения переменных для минут и секунд, разделяя :
Код:
o.innerHTML = [f (m), f (s)].join (':');
Если я что-то не так понял, прошу меня поправить.
За ранее спасибо.
Ответить с цитированием