Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Отсчет времени.


Автор: Хоббит 10.12.2005, 15:59
Нужен такой простой скриптик. После зугрузки страницы. Появляется индикатор времени 20, потом меняется на 19 18 17 и.т.д. .. до 0 .. после истеченея времени грузится другая страница или запускается другой сценарий (не важно)

Автор: GIK 10.12.2005, 16:08
Можно с легкостью использовать событие-таймер setInterval("метод", время) или setTimeOut(), а индикатор можно реализовать по разному, хотябы текстовое поле например. smile

Автор: GIK 10.12.2005, 16:19
Самый простенький пример. Но можно его разукрасить smile
Если что не понятно спрашивай, тебе сдесь помогут
Код

<html>
 <head>
  <script type="text/javascript">
  <!-- 
    n=20;
    setTimeGou=window.setInterval("f1()", 1000);

    function f1()  
   {
     document.getElementById("textIndikator").value=n;
      n--;
     if (n==0) 
     {clearInterval(setTimeGou);}
   }
  
   //-->
  </script>
 </head>
<body>
  <input type="text" id="textIndikator" value="Счетчик">
</body>
</html>

Добавлено @ 16:29
Совсем забыл про запуск другой функции.
Код

    n=20;
    setTimeGou=window.setInterval("f1()", 1000);

    function f1()  
   {
     document.getElementById("textIndikator").value=n;
      n--;
     if (n==0) 
     {clearInterval(setTimeGou);
      f2();
     }
    
   }
   function f2()
{ alert("Вторая функция запущена");
 }

Автор: Хоббит 11.12.2005, 22:58
второй параметр в функции setInterval // задает интервал в милисекундах да? ...
спасибо. Помог.
В будующем обязательно займусь чтением книжек по JavaScript .. а пока пригодился маленький скрипт

Автор: Хоббит 13.12.2005, 18:58
... такой вопрос .. а можно значение времени выводит .. не в поле text // а просто как (текст) .. типа label или типа того обьекты существуют?

Автор: Ciber SLasH 13.12.2005, 22:42
Цитата
а можно значение времени выводит .. не в поле text

Да выводи куда захочется.
В innerHTML элемента приёмника запихуй и будет тебе счастье...

Автор: Хоббит 14.12.2005, 10:09
а пример можно? ... просто я в Java Script я не огромный специалист

Автор: Ciber SLasH 14.12.2005, 13:25
Код
<div id='test'></div>
<script type='text/javascript'>
document.getElementById("test").innerHTML = "зю";
</script>

Автор: Хоббит 14.12.2005, 18:08
спасибо

Автор: GIK 14.12.2005, 18:22
Цитата
Но можно его разукрасить

Напоследок.
Как и обещал, разукрасил.
Код

<html>
  <head>
    <script type='text/javascript'>
    var mas=new Array();
    mas[0]="silver";
    mas[1]="green";
    mas[2]="blue";
    mas[3]="silver";
    mas[4]="yellow";
    mas[5]="green";
    mas[6]="blue";
    mas[7]="silver";
    mas[8]="yellow";
    mas[9]="silver";
    mas[10]="green";
    mas[11]="silver";
    mas[12]="blue";
    mas[13]="silver";
    mas[14]="green";
    mas[15]="silver";
    mas[16]="yellow";
    mas[17]="blue";
    mas[18]="silver";
    mas[19]="green";
    var max=20;
    var i=-1;
    setTimeGou=window.setInterval('f1()',1000);
   
     function f1()
 {   var itog = max--;
     i++;
     document.getElementById("test").style.color=mas[i];
     document.getElementById("test").innerHTML = itog;
    if(itog==0)
    {clearInterval(setTimeGou);}

 }
  </script>
  </head>
    <body>
  <div id='test' style="color:yellow;">
 20
  </div>
  </body>
</html>

Добавлено @ 18:23
Для общего развития, так сказать.

Автор: Хоббит 19.12.2005, 17:15
Так. А можно ли такую фигню реализовать средствами PHP. Если нет, то как встроить этот код в PHP функцию. То бишь в каком месте должна быть описан ява скрипт и в каком месте он может быть запушен.

Автор: Ciber SLasH 19.12.2005, 19:04
А смысл реализовывать это на PHP ? Ведь PHP — это серверный язык, что означает все действия происходят на стороне сервера.
Просто генери страницу с нужным JavaScript-ом и выдавай её браузеру.

Автор: Хоббит 19.12.2005, 19:54
Дело в том что PHP функция возрашает только текст.... причем текст который будет вставлен где то в середину страницы. Могу ли я прям посреди HTML документа обьявитьь java script и его использовать?

Автор: Ciber SLasH 19.12.2005, 20:35
Цитата
Могу ли я прям посреди HTML документа обьявитьь java script и его использовать?

Конечно.

Автор: Хоббит 19.12.2005, 20:53
..ага .. спасибо все получилось .... там еще вопрос был как по истечению интервала перейти на другую страницу .... то бишь ...??? какой функцией

Автор: Ciber SLasH 19.12.2005, 21:14
location.href = "url"

Автор: Хоббит 29.12.2005, 11:50
Теперь такая проблема. Скрипт с отсчетом времени, как приведено выще работает.
На экране у меня форма с кнопкой. Как мне после нажатия кнопки получить значение времени(сколько прошло), а еще лучше, отправить згачение времени вместе с формой. (форма обрабатывается php скриптом)

Автор: Хоббит 9.1.2006, 13:59
теперь такой вопрос ... по нажатию на кнопку пока фориа грузится врема на экране идет ....
как сделать что бы по нажатию на кнопку отправки время останавливалось .. тоесть выполнялась awbz clearInterval(..

Автор: Sardar 9.1.2006, 15:58
Хоббит ну раз врубаешся что есть clearInterval, неужели его так сложно поставить на onclick кнопки? smile

Автор: Хоббит 10.1.2006, 22:49
onclick = 'clearInterval ' ... не прет.... не работает .. пока форма грузиться время продолжает тикать

Автор: Cheba 10.1.2006, 23:08
Это потому-что JS не поддерживает паскалевский способ вызова фукций. Всегда надо указывать скобки и идентификатор таймера, который был возвращен функцией setInterval.

Внимательно перечитай примеры кода выше по текстку.

Автор: Хоббит 16.1.2006, 19:29
//// вся эта хрень .. счетчик времени и фция clearInterval //// не срабатывает в OPERE ... под нее как то можно все с адаптировать ???

Автор: Sardar 20.1.2006, 02:50
Хоббит меньше эмоций, давай код или ссылку на страницу где траблу можно увидеть, иначе это всё лишнее сотрясание воздуха.

Отркон новый топ, что бы мне тему не делить.
Ещё раз правила нарушишь, буду бить посты.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)