Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2014, 20:10
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

javascript timer
Вообщем есть элемент типа
<span>time left <span id="lbTime">02:13</span></span>

время идет в обратном направлении и до нуля

как можно сделать это время "живым" (чтоб тикал)?
чтоб каждую секунду из таймера соответственно вычиталась 1 секунда
а когда время = 00:00, то выводить какой-нибудь алерт()

Начал в этом роде, но не могу понять какой интервал задавать и что в нем делать

var now = (new Date()).getTime();

var a = document.getElementById('lbTime');
var t = a.innerHTML.split(':');
var m = parseInt(t[0]);
var s = parseInt(t[1]);
var left = m*60+s*1;
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2014, 20:15
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Vampir3, setInterval
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2014, 20:16
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

я знаю что такое setinterval, я не могу понять как таймер сделать
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2014, 20:18
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Vampir3, через setInterval. Ставь setInterval с одной секундой и уменьшай значение счётчика, пока не станет 0.
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2014, 20:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
Ставь setInterval с одной секундой и уменьшай значение счётчика, пока не станет 0.
Ну это тогда получится не слишком точный таймер. Но ведь тс наверняка и так сойдет )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2014, 21:55
Аватар для XelaNimed
Интересующийся
Отправить личное сообщение для XelaNimed Посмотреть профиль Найти все сообщения от XelaNimed
 
Регистрация: 07.02.2010
Сообщений: 23

Здравствуйте.
Посмотрите пример на JSFiddle.
Или можете запустить здесь:
<iframe width="100%" height="300" src="http://jsfiddle.net/XelaNimed/0v1dnytw/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>

Последний раз редактировалось XelaNimed, 17.10.2014 в 21:58.
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2014, 23:11
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

XelaNimed,
ну и код у тебя... в чём выгода все время явно работать с глобальным пространством имён ??
не лень столько раз писать window ?
Ответить с цитированием
  #8 (permalink)  
Старый 18.10.2014, 06:33
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

И зачем возвращать undefined, да еще и таким извращенским способом?
Ответить с цитированием
  #9 (permalink)  
Старый 18.10.2014, 12:03
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

http://learn.javascript.ru/play/uX1Dlb

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <span id="timer"></span>

    <script>
      (function() {
        function onTimeEnd() {
          alert('Boom!');
          //В this будет передана ссылка на сам элемент с таймером.
          //this.style.display = 'none'; /*Можно скрыть теймер при истечении*/
        };
        function secondsToTime(seconds) {
          return new Date(null, null, null, null, null, seconds).toTimeString().match(/\d{2}:(\d{2}:\d{2})/)[1];
        };
        var elem = document.getElementById('timer'),
            interval = setInterval(function() {
          		elem.innerHTML = secondsToTime(startTime);
              if(!startTime--) {
                onTimeEnd.call(elem);
                clearInterval(interval);
              }
        	}, 1E3),
            startTime = 30; //Стартовое количество в секундах.
      })();
    </script>

  </body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 18.10.2014, 13:35
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

Ruslan_xDD Спасибо, еще вопрос - с чем связана задержка в самом начале перед началом отсчёта?

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <span id="timer">00:15</span>
    <script>
        function onTimeEnd() {
          window.location.href += "";
        }
		
        function secondsToTime(seconds) {
          return new Date(null, null, null, null, null, seconds).toTimeString().match(/\d{2}:(\d{2}:\d{2})/)[1];
        }
		
        function setTimer() {
			var elem = document.getElementById('timer');
			var e = elem.innerHTML.split(':');
			var m = parseInt(e[0]);
			var s = parseInt(e[1]);
			var secleft = m*60+s*1;
            interval = setInterval(function() {
                elem.innerHTML = secondsToTime(startTime);
              if(!startTime--) {
                onTimeEnd();
                clearInterval(interval);
              }
            }, 1000);
            startTime = secleft;
		}
		setTimer();
			</script>
  </body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34