[Javascript] Обратный отсчёт

Тема в разделе "Другие языки", создана пользователем dig555, 7 апр 2008.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    362
    Симпатии:
    148
    Товарищи! Помогите, пожалуйста, найти скрипт обратного отсчёта. Частенько на всяких там CAP'aх - скрывают ссылку на n секунд.
    Вот и мне нужно что-то такое. Страница загрузилась - пользователю в лицо таймер: ссылка будет доступна через n секунд. И по истечению этих секунд - показать таки ему ссылочку, а пока пусть на рекламу пофтыкает :-]
     
  2. smb14

    smb14 Постоялец

    Регистр.:
    28 янв 2007
    Сообщения:
    83
    Симпатии:
    18
    Код:
    var limit = 300; // в секундах
    
    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 = "  ";
      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;
    }
    
    processTimer();
     
    dig555 нравится это.
  3. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    В этом коде есть один маленький недостаток, если в месте
    Тут вписать код показывающий ссылку, то юзеры данную фишку просекут, и будут эту ссылку выдирать тупо из html страницы, забивая на счетчик..
    А так по хорошему надоб ajax заюзать, и на сервере тоже поставить интервал выдачи ссылки, тогда даже юзер будет знать где находится выдача, он все равно сможет увидеть ссылку по истечению какого-то времени.
     
  4. smb14

    smb14 Постоялец

    Регистр.:
    28 янв 2007
    Сообщения:
    83
    Симпатии:
    18
    Обратный отсчет по названию топика реализован, остальное дело топикастера, для серьезного проекта можно много чего наворотить, иначе - не стоит заморачиваться
     
  5. kaliostro

    kaliostro

    Регистр.:
    6 апр 2007
    Сообщения:
    201
    Симпатии:
    33
    А кто тебе запрещает сделать там запрос на сервер с помощью AJAX, а там уже проверить время со 100% точностью, чтобы некторые умные сами не едлали запрос.
     
  6. zetaap

    zetaap Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    83
    Симпатии:
    11
    Создал вот такую страничку вставил этот скрипт

    HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Документ Без Имени</title>
    </head>
    
    <body>
    <script>
    var limit = 300; // в секундах
    
    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;
    }
    
    processTimer();
    </script>
    </body>
    </html>
    
    Чёто у меня не выводит время с обратным отсчётом. Что тут не так?
     
  7. sotee

    sotee Создатель

    Регистр.:
    10 июл 2008
    Сообщения:
    17
    Симпатии:
    5
    Конечно, не выводит.
    Скрипт показывает время в элементе с id="timer"
    Добавь в <body>
    PHP:
    <div id="timer"></div>
     
Статус темы:
Закрыта.