JavaScript - таймер обратного отсчета

Быстрый переход:
Михаил

Михаил

Member
#1   09 декабря 2008 21:55
Друзья!

Помогите, пожалуйста, найти скрипт обратного отсчёта. Периодически на всяких там CAP'aх - скрывают ссылку на n секунд.
Вот и мне понадобилось что-то такое. Страница загрузилась - пользователю в лицо таймер: ссылка будет доступна через n секунд. И по истечению этих секунд - показать таки ему ссылочку, а пока пусть на рекламу полюбуется да соглашение почитает.
Нет ничего более статичного в этом мире, чем динамика
Алексей

Алексей

Administrator
#2   11 декабря 2008 09:35
В одном проекте использовал такой код:

<script language="javascript">
<!--
var limit = <?php echo DOWN_DELAY ?>; // в секундах

function processTimer(){

  if (limit > 0) {
    setTimeout("processTimer()",1000);
    limit--;
  } else {
    // здесь действия после завершения таймера
    //..
  }

  var limit_div = parseInt(limit/60); // минуты
  var limit_mod = limit - limit_div*60; // секунды
  
  // строка с оставшимся временем
  limit_str = "&nbsp;&nbsp;";
  if (limit_div < 10) limit_str = limit_str + "0";
  limit_str = limit_str + limit_div + ":";
  if (limit_mod < 10) limit_str = limit_str + "0";
  limit_str = limit_str + limit_mod + "&nbsp;&nbsp;";      
  
  // вывод времени
  el_timer = document.getElementById("timer");
  if (el_timer) el_timer.innerHTML = limit_str;
}

// -->
</script>

В нужный момент вызываем эту функцию:

processTimer();

Она выведет таймер в элемент с id="timer"

например:

<span id="timer"></span>

Быстрота и надежность... Ну и красота тоже, конечно

Михаил

Михаил

Member
#3   22 декабря 2008 00:49
Спасибо! Очень помог. Премного +1 :-8)
Нет ничего более статичного в этом мире, чем динамика
Аватар

PavluxaFSB

Member
#4   24 апреля 2009 14:12
Доброго времени суток! Подскажите пожалуйста как после окончания таймера отправить форму на сервер или имитировать нажатие кнопки на форме (которая отправит форму на сервер)
Алексей

Алексей

Administrator
#5   24 апреля 2009 23:31
Для отправки формы можно воспользоваться методом submit().

Например:

// Ваша форма
<form name="myform" action="handle-data.php">
Search: <input type='text' name='query'>
</form> 

В коде таймера, что выше Вам нужно вместо фразы
// здесь действия после завершения таймера
//..

поставить: document.myform.submit();

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

PavluxaFSB

Member
#6   06 мая 2009 16:53
Подскажите пожалуйста, а как выводить не через таг span, а через input type="text"
Natty

Natty

Member
#7   06 мая 2009 19:51
можно, конечно
Вот пример:

// Ваша форма
<form name="myform" action="handle- data. php">
timer: <input type='text' name='timeouter' value='30' >
</form>

в коде скрипта вывод таймера будет таким:

// вывод времени
  document. myform. timeouter. value = limit str
Алексей

Алексей

Member
#8   28 сентября 2010 08:16
Спасибо большое!!!! :)
Аватар

Виктор

Member
#9   17 июня 2011 11:53
# Alex : В одном проекте использовал такой код:

<script language="javascript">
<!--
var limit = <?php echo DOWN_DELAY ?>; // в секундах

function processTimer(){

  if (limit > 0) {
    setTimeout("processTimer()",1000);
    limit--;
  } else {
    // здесь действия после завершения таймера
    //..
  }

  var limit_div = parseInt(limit/60); // минуты
  var limit_mod = limit - limit_div*60; // секунды
  
  // строка с оставшимся временем
  limit_str = "&nbsp;&nbsp;";
  if (limit_div < 10) limit_str = limit_str + "0";
  limit_str = limit_str + limit_div + ":";
  if (limit_mod < 10) limit_str = limit_str + "0";
  limit_str = limit_str + limit_mod + "&nbsp;&nbsp;";      
  
  // вывод времени
  el_timer = document.getElementById("timer");
  if (el_timer) el_timer.innerHTML = limit_str;
}

// -->
</script>

В нужный момент вызываем эту функцию:

processTimer();

Она выведет таймер в элемент с id="timer"

например:

<span id="timer"></span>

пожалуйста, кому не сложно помогите разместить такой таймер у себя на сайте.