Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер обратного отсчета времени с кнопками (https://javascript.ru/forum/misc/25618-tajjmer-obratnogo-otscheta-vremeni-s-knopkami.html)

denisich84 10.02.2012 16:13

Таймер обратного отсчета времени с кнопками
 
Перерыв инет ни чего подходящего не нашел:cray: Случайно наткнулся на этот сайт и вроде люди тут толковые:thanks:
Прошу помочь с проблемкой. Нашел на этом форуме скрипт таймера:
Код:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Div HTML</title>
</head>
<body>
<html>
        <head>
                <meta charset="utf-8">
                <style type="text/css">
                        body { background-color:#ffcc33; margin:0px; }
                        div { color:#0033cc; font:bold 12pt Tahoma; margin:15px; }
                </style>
                <script type="text/javascript">
  var T = {
    n: null,
    s: new Date,
    f: 1,
    t: new Date,
    Timer: function () {
        T.t = new Date(T.t.getTime() + T.f * ((new Date).getTime() - T.s.getTime()));
        document.getElementsByTagName("div")[0].innerHTML = T.t.toLocaleTimeString();
        T.s = new Date;
        T.n = setTimeout(function () {
            T.Timer()
        }, 500)
    },
    New_start: function () {
        clearTimeout(T.n);
        T.t.setHours(0, 0, 0, 0);
        T.s = new Date;
        T.Timer()
    },
    Pause: function () {
        T.s ? (clearTimeout(T.n), T.s = "") : (T.s = new Date, T.Timer())
    },
    BackTimer: function () {
        clearTimeout(T.n);
        T.f = -T.f;
        T.s = new Date;
        T.Timer()
    },
    Set: function () {
        var a = parseInt(document.getElementById("sec").value, 10) || 0;
        T.t.setHours(0, 0, a, 0);
        document.getElementsByTagName("div")[0].innerHTML = T.t.toLocaleTimeString()
    }
};
                </script>
        </head>
        <body>
                <input type="button" onclick="T['New_start']()" value="Start/New">
                <input type="button" onclick="T['Pause']()" value="Pause/Go">
        <input type="button" onclick="T['BackTimer']();" value="BackTimer">
        <input type="button" onclick="T['Set']();" value="Set">
        <label><input type="text" value="30" id="sec">sec</label>
        <div>Div HTML</div>
    </body>
</html>

С куками работать я не умею! Как сделать чтобы таймер не сбрасывался при обновлении страницы и при закрытии браузера, а продолжал отсчитывать время??? И на одной странице можно было расположить несколько таймеров?

И чтобы дату отсчета можно было вводить со страницы например как в этом скрипте:

Код:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Часы</title>
</head>

<body>
<div align="center">
<p>&nbsp;<span id="clock1" style="width:450px; font-size:10px"></span>&nbsp;</p>
</div>

<script type="text/javascript">
<!--
 var hour0=0;
 var min0=0;
 var sec0=0;
 var timeId=null;
 
 function form2 (v) { return (v<10?'0'+v:v); }
 
 function changetime() {
  sec0--;
  if (sec0<0) {
  sec0=59;
  min0--;
  if (min0<0) {
    min0=59;
    if (hour0>0) hour0--;
    else { hour0=min0=sec0=0; }
  }
  }
 }
 
function showtime () {
  var t=hour0*3600+min0*60+sec0;
  if (t>0) {
  document.getElementById('clock1').innerHTML = form2(hour0)+':'+form2(min0)+':'+form2(sec0);
  changetime();
  }
  else if (t<1) {
  document.getElementById('clock1').innerHTML = '';
  window.clearTimeout (timeId);
  timeId=null;
  }
 }
 
 function inittime (hour,min,sec) {
  if (timeId) {
  window.clearTimeout (timeId);
  timeId=null;
  }
  hour0=Math.max(hour,0); min0=Math.max(min,0); sec0=Math.max(sec,0);
  if (!timeId) {
  timeId=window.setInterval("showtime();",1000);
  }
 }
// -->
</script>

<script type="text/javascript">
 function generate_list (name,min,step,max,deft) {
  document.writeln ('<select name="'+name+'" size="1">');
  for (var i=min; i<=max; i+=step) {
  document.write ('<option value="'+i+'"');
  if (i==deft) { document.write (' selected'); }
  document.writeln ('>'+(i<10?'0'+i:i)+'</option>');
  }
  document.writeln ('</select>');
 }
</script>
 
<div align="center">
 <form name="f1">
  <table align="center" width="90%" border="0" cellpadding="4" cellspacing="0"><tr>
  <td>Часы:&nbsp;<script type="text/javascript">generate_list ('hour0',0,1,50,1);</script></td>
  <td>Минуты:&nbsp;<script type="text/javascript">generate_list ('min0',0,1,59,0);</script></td>
  <td>Секунды:&nbsp;<script type="text/javascript">generate_list ('sec0',0,1,59,0);</script></td>
  <td><input type="button" value="Отсчёт"
    onclick="inittime(
    document.f1.hour0.options[document.f1.hour0.selectedIndex].value,
    document.f1.min0.options[document.f1.min0.selectedIndex].value,
    document.f1.sec0.options[document.f1.sec0.selectedIndex].value);"></td>
  </tr></table>
 </form>
</div>
</body>
</html>


function 10.02.2012 17:31

Цитата:

Сообщение от denisich84
Как сделать чтобы таймер не сбрасывался при закрытии браузера

Стать Господом-Богом.

function 10.02.2012 17:36

Хотя можно изловчиться и с помощью cookie и проверки времени (Date), прошедшего с преведущего посещения страницы.

denisich84 10.02.2012 17:45

Можно же как то запомнить время когда был включен таймер? и отсчитывать от этого времени то время которое нам надо!

function 10.02.2012 17:51

Цитата:

Сообщение от function
Хотя можно изловчиться

А вообще:

click

denisich84 10.02.2012 18:03

Цитата:

Сообщение от function
А вообще:

click

Я же тебя не учу своей профессии! Зачем ты мне навязываешь свою? Для кого то скрипт написать как семечки по щелкать, а для кого то лес дремучий!

function 10.02.2012 19:04

Цитата:

Сообщение от denisich84
Я же тебя не учу своей профессии! Зачем ты мне навязываешь свою?

Потому что, я не намерен весь вечер заниматься чужим скриптом за бесплатно.

denisich84 10.02.2012 19:08

там надо две строчки дописать все уже написано)))

Mахmахmахimus 10.02.2012 19:12

denisich84, мне кажется ты ему нагрубил и после этого он и 2 строчки писать не будет, сколько бы ты смайликов не поставил.

denisich84 10.02.2012 19:19

пускай не умничает умник! будто я без него не знаю где справочники искать!


Часовой пояс GMT +3, время: 11:53.