13.12.2011, 12:55
|
Интересующийся
|
|
Регистрация: 22.10.2011
Сообщений: 23
|
|
Обратный таймер
Привет всем!
В javascript профан, нужна очень помощь.
Нужен скрипт таймера обратного отсчета(час, минута, секунда) с кнопкой пауза!
Облазил весь интернет ничего подходящего найти не смог!
|
|
13.12.2011, 13:01
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
вам как удобнее, водить в функцию время с которого начнется обратный отсчет таймера? или вводить в функцию дату до которой будет отсчитывать таймер)?
Последний раз редактировалось Livanderiaamarum, 13.12.2011 в 13:47.
|
|
13.12.2011, 13:35
|
Интересующийся
|
|
Регистрация: 22.10.2011
Сообщений: 23
|
|
Сообщение от Livanderiaamarum
|
вам как удобнее, водить в функцию время с которого начнется обратный отсчет таймера? или ввоодить дату до которой будет отсчитывать таймер)?
|
Удобнее если время будет задаваться в самом скрипте а на экране будет виден только время и кнопка старт/пауза, т.е. первый раз запустил отсчет например 45 минут и далее пауза останавливает обратный отсчет и таже кнопка его возобновляет.
|
|
13.12.2011, 13:46
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от kuzkuz
|
Удобнее если время будет задаваться в самом скрипте а на экране будет виден только время и кнопка старт/пауза, т.е. первый раз запустил отсчет например 45 минут и далее пауза останавливает обратный отсчет и таже кнопка его возобновляет.
|
ответь на вопрос?!
|
|
13.12.2011, 13:54
|
Интересующийся
|
|
Регистрация: 22.10.2011
Сообщений: 23
|
|
Сообщение от Livanderiaamarum
|
ответь на вопрос?!
|
Ой извиняюсь, время с которого начнется обратный отсчет таймера
|
|
13.12.2011, 14:25
|
|
Профессор
|
|
Регистрация: 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.
|
|
13.12.2011, 14:42
|
Интересующийся
|
|
Регистрация: 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" /> ?
|
|
13.12.2011, 14:50
|
|
junior
|
|
Регистрация: 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.
|
|
13.12.2011, 14:51
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от kuzkuz
|
Отлично, спасибо ОГРОМНОЕ, в принципе все понятно!
Чтобы вывести время например в <input> Что мне необходимо сделать(ну или в div)
Для вывзова функции остановки и запуска таймера мне достаточно в свойстве кнопки указать <input onclick="timer.pause()" type="button" /> ?
|
да) конечно) попробуйте все)) разберетесь)
timer([0,0,30], function(h,m,s){
//вот тут время у тебя доступно как
//h - часы
//m - минуты
//s - секунды
})
|
|
13.12.2011, 16:58
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
nerv_,
Потому, что у тебя видимо локальное время +3 стоит, у меня вот +4 и у меня 4 часа показываться)
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
|
|