Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.12.2011, 12:55
Интересующийся
Отправить личное сообщение для kuzkuz Посмотреть профиль Найти все сообщения от kuzkuz
 
Регистрация: 22.10.2011
Сообщений: 23

Обратный таймер
Привет всем!
В javascript профан, нужна очень помощь.
Нужен скрипт таймера обратного отсчета(час, минута, секунда) с кнопкой пауза!
Облазил весь интернет ничего подходящего найти не смог!
Ответить с цитированием
  #2 (permalink)  
Старый 13.12.2011, 13:01
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

вам как удобнее, водить в функцию время с которого начнется обратный отсчет таймера? или вводить в функцию дату до которой будет отсчитывать таймер)?

Последний раз редактировалось Livanderiaamarum, 13.12.2011 в 13:47.
Ответить с цитированием
  #3 (permalink)  
Старый 13.12.2011, 13:35
Интересующийся
Отправить личное сообщение для kuzkuz Посмотреть профиль Найти все сообщения от kuzkuz
 
Регистрация: 22.10.2011
Сообщений: 23

Сообщение от Livanderiaamarum Посмотреть сообщение
вам как удобнее, водить в функцию время с которого начнется обратный отсчет таймера? или ввоодить дату до которой будет отсчитывать таймер)?
Удобнее если время будет задаваться в самом скрипте а на экране будет виден только время и кнопка старт/пауза, т.е. первый раз запустил отсчет например 45 минут и далее пауза останавливает обратный отсчет и таже кнопка его возобновляет.
Ответить с цитированием
  #4 (permalink)  
Старый 13.12.2011, 13:46
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сообщение от kuzkuz Посмотреть сообщение
Удобнее если время будет задаваться в самом скрипте а на экране будет виден только время и кнопка старт/пауза, т.е. первый раз запустил отсчет например 45 минут и далее пауза останавливает обратный отсчет и таже кнопка его возобновляет.

ответь на вопрос?!
Ответить с цитированием
  #5 (permalink)  
Старый 13.12.2011, 13:54
Интересующийся
Отправить личное сообщение для kuzkuz Посмотреть профиль Найти все сообщения от kuzkuz
 
Регистрация: 22.10.2011
Сообщений: 23

Сообщение от Livanderiaamarum Посмотреть сообщение
ответь на вопрос?!
Ой извиняюсь, время с которого начнется обратный отсчет таймера
Ответить с цитированием
  #6 (permalink)  
Старый 13.12.2011, 14:25
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

СУТЬ ТАКОВА)!
есть обьект timer в него передается 2 аргумента
1) время которое нужно отсчитывать
2) функция которая будет выполняться каждую секунду

timer(время, функция);


время передается массивом, часы минуты секунды

[1,15, 42] 1 час 15 минут 42 секунды.

[0,0,10] 0 часов 0 минут 10 секунд.

timer([0,0,10], функция)

в нашу функцию будут передаваться 3 параметра, часы минуты и секунды обратного отсчета. и их можно естественно использовать внутри её.

то есть нужно писать так

timer([0,0,10] , function(часы, минуты, секунды) { alert(часы) } )


обьект timer имеет методы pause() и start()

просто нужно написать

timer.pause() // приостановка
timer.start() // запуск с приостановленного места






function timer(_time, _call){
			timer.lastCall = _call
			timer.lastTime = _time
			timer.timerInterval = setInterval(function(){
						_call(_time[0],_time[1],_time[2]);
						_time[2]--
						if(_time[0]==0 && _time[1]==0 && _time[2]==0){
									timer.pause()
									_call(0,0,0);
						}
						if(_time[2]==0){
									_time[2] = 59
									_time[1]--
									if(_time[1]==0){
												_time[1] = 59
												_time[0]--
									}
						}
						timer.lastTime = _time
			}, 1000)
}
timer.pause = function(){
			clearInterval(timer.timerInterval)
}
timer.start = function(){
			timer(timer.lastTime, timer.lastCall)
}

//сверху мое, а тут уже ваше)
//тут мы начинаем таймер. передаем массив с временем и функцию которая будет вызываться каждую секунду
timer([0,0,7], function(h,m,s){
			alert(h + ':' +m + ':' +s) // алертнуть часы минуты и секунды
})

timer.pause()
timer.start()

Последний раз редактировалось Livanderiaamarum, 13.12.2011 в 14:31.
Ответить с цитированием
  #7 (permalink)  
Старый 13.12.2011, 14:42
Интересующийся
Отправить личное сообщение для kuzkuz Посмотреть профиль Найти все сообщения от kuzkuz
 
Регистрация: 22.10.2011
Сообщений: 23

Сообщение от Livanderiaamarum Посмотреть сообщение
СУТЬ ТАКОВА)!
есть обьект timer в него передается 2 аргумента
1) время которое нужно отсчитывать
2) функция которая будет выполняться каждую секунду

timer(время, функция);


время передается массивом, часы минуты секунды

[1,15, 42] 1 час 15 минут 42 секунды.

[0,0,10] 0 часов 0 минут 10 секунд.

timer([0,0,10], функция)

в нашу функцию будут передаваться 3 параметра, часы минуты и секунды обратного отсчета. и их можно естественно использовать внутри её.

то есть нужно писать так

timer([0,0,10] , function(часы, минуты, секунды) { alert(часы) } )


обьект timer имеет методы pause() и start()

просто нужно написать

timer.pause() // приостановка
timer.start() // запуск с приостановленного места






function timer(_time, _call){
			timer.lastCall = _call
			timer.lastTime = _time
			timer.timerInterval = setInterval(function(){
						_call(_time[0],_time[1],_time[2]);
						_time[2]--
						if(_time[0]==0 && _time[1]==0 && _time[2]==0){
									timer.pause()
									_call(0,0,0);
						}
						if(_time[2]==0){
									_time[2] = 59
									_time[1]--
									if(_time[1]==0){
												_time[1] = 59
												_time[0]--
									}
						}
						timer.lastTime = _time
			}, 1000)
}
timer.pause = function(){
			clearInterval(timer.timerInterval)
}
timer.start = function(){
			timer(timer.lastTime, timer.lastCall)
}

//сверху мое, а тут уже ваше)
//тут мы начинаем таймер. передаем массив с временем и функцию которая будет вызываться каждую секунду
timer([0,0,7], function(h,m,s){
			alert(h + ':' +m + ':' +s) // алертнуть часы минуты и секунды
})

timer.pause()
timer.start()
Отлично, спасибо ОГРОМНОЕ, в принципе все понятно!
Чтобы вывести время например в <input> Что мне необходимо сделать(ну или в div)

Для вывзова функции остановки и запуска таймера мне достаточно в свойстве кнопки указать <input onclick="timer.pause()" type="button" /> ?
Ответить с цитированием
  #8 (permalink)  
Старый 13.12.2011, 14:50
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Тоже сделал вариант. В связи с чем вопрос: я задаю время в миллисекундах (30 сек), т.е. по идее должно отображаться только 30 сек. Откуда там 3 часа берется?)))

p.s.: с датой работаю буквально второй раз
<html>
	<head>
		<meta charset="utf-8">
		<style type="text/css">
		</style>
		<script type="text/javascript">
			var x = new Date().getTime() + 30000;

			function backTimer() {
				var j = document.getElementsByTagName('div')[0];
				var i = new Date().getTime();
				if(i < x) {
					j.innerHTML = new Date(x - i).toLocaleTimeString();
					setTimeout(backTimer, 500);
				} else {
					j.innerHTML = "00:00:00";
				}
			}
		</script>
	</head>
	<body onload="backTimer();">
		<div></div>
	</body>
</html>
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 13.12.2011 в 14:53.
Ответить с цитированием
  #9 (permalink)  
Старый 13.12.2011, 14:51
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сообщение от kuzkuz Посмотреть сообщение
Отлично, спасибо ОГРОМНОЕ, в принципе все понятно!
Чтобы вывести время например в <input> Что мне необходимо сделать(ну или в div)

Для вывзова функции остановки и запуска таймера мне достаточно в свойстве кнопки указать <input onclick="timer.pause()" type="button" /> ?
да) конечно) попробуйте все)) разберетесь)

timer([0,0,30], function(h,m,s){
   //вот тут время у тебя доступно как
   //h - часы
   //m - минуты
   //s - секунды
})
Ответить с цитированием
  #10 (permalink)  
Старый 13.12.2011, 16:58
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

nerv_,
Потому, что у тебя видимо локальное время +3 стоит, у меня вот +4 и у меня 4 часа показываться)
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
таймер + cookie ДимаЯл Элементы интерфейса 2 08.11.2011 15:24
Как сделать таймер как в САР? jelome Элементы интерфейса 0 27.06.2011 12:40
Таймер для слайдера (jQuery) RamPi Events/DOM/Window 0 23.05.2011 14:52
Как два раза вставить таймер alexvost Общие вопросы Javascript 2 08.02.2011 02:28
Графический таймер обратного отсчета bobri4 Элементы интерфейса 4 24.08.2009 22:50