Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2014, 23:10
Новичок на форуме
Отправить личное сообщение для VTrial Посмотреть профиль Найти все сообщения от VTrial
 
Регистрация: 26.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 (':');
Если я что-то не так понял, прошу меня поправить.
За ранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 27.02.2014, 00:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,050

Сообщение от VTrial
Без малейшего понятия, что это и для чего:
function f (x) {return (x / 100).toFixed (2).substr (2)}
добавка нолика
function f (x) {return (x / 100).toFixed (2).substr (2)}
      alert(f(9))

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

Сообщение от рони Посмотреть сообщение
добавка нулика
function f (x) {return (x / 100).toFixed (2).substr (2)}
      alert(f(9))
Какого еще нулика?
Ответить с цитированием
  #4 (permalink)  
Старый 27.02.2014, 00:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,050

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

Хорошо. Теперь стоит вопрос, как убрать минуты и считать только секунды.
Ответить с цитированием
  #6 (permalink)  
Старый 27.02.2014, 01:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,050

Сообщение от VTrial
Хорошо. Теперь стоит вопрос, как убрать минуты и считать только секунды.
o.innerHTML = [f (m), f (s)].join (':');

o.innerHTML = f (s)
или
o.innerHTML = s
Ответить с цитированием
  #7 (permalink)  
Старый 27.02.2014, 01:07
Новичок на форуме
Отправить личное сообщение для VTrial Посмотреть профиль Найти все сообщения от VTrial
 
Регистрация: 26.02.2014
Сообщений: 5

Не работает так, уже пробовал.
Скидывает на N (NaN)
Ответить с цитированием
  #8 (permalink)  
Старый 27.02.2014, 01:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,050

VTrial,
<span id="timer" long="59">60</span>
<script>
var t = setInterval (function ()
   {
   function f (x) {return (x / 100).toFixed (2).substr (2)}
   var o = document.getElementById ('timer'), s = o.innerHTML;
   s--;
   if (s < 0) s = o.getAttribute ('long');
   o.innerHTML = f(s);
   }, 1000);
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 27.02.2014, 02:00
Новичок на форуме
Отправить личное сообщение для VTrial Посмотреть профиль Найти все сообщения от VTrial
 
Регистрация: 26.02.2014
Сообщений: 5

Ага, теперь понятно. Все работает, спасибо!

Последний раз редактировалось VTrial, 27.02.2014 в 02:03.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновляемый таймер на javascript smillyhamster Общие вопросы Javascript 1 31.12.2013 09:30
Таймер обратного отсчёта useruser Элементы интерфейса 5 04.11.2013 06:29
Очень нужен обратный таймер ! ! kca99 Общие вопросы Javascript 7 04.03.2013 12:42
Обратный таймер kuzkuz Общие вопросы Javascript 47 16.12.2011 18:09
Таймер для слайдера (jQuery) RamPi Events/DOM/Window 0 23.05.2011 14:52