Показать сообщение отдельно
  #4 (permalink)  
Старый 23.12.2011, 17:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Вариант таймера ... немного его перекомпоновал ... добавил клавиши клавиатуры как в варианте FINoM, Старт/пауза (Пробел или Enter) Новый вариант (Esc) ... основное достоинство выводит точно (максимально возможное в данном коде) время при нажатии на паузу или кнопку M+ независимо от выставленной паузы в setTimeout("startTIME()", 50) ... можно следовательно снизить нагрузку на процессор точность не потеряется ...
<html>
<head>
  <script language="javascript">
var clocktimer, dateObj, dh, dm, ds, ms, readout = "",
    show = !0,
    init = 0,
    ii = 0,
    pause = 0;

function clearALL() {
    clearTimeout(clocktimer);
    init = 0;
    readout = "00:00:00.00";
    document.clockform.clock.value = readout;
    var a = document.clockform;
    for (ij = 0; 10 > ij; ij++) a["m" + ij].value = "";
    ii = 0
}
function addMEM() {
    if (!0 == show ) clearTimeout(clocktimer), startTIME(), document.clockform["m" + ii].value = readout, ii = ++ii % 10
}
function startTIME() {
    var a = new Date((new Date).getTime() - dateObj.getTime());
    dh = ("0" + a.getUTCHours()).replace(/.+?(\d{2})$/, "$1");
    dm = ("0" + a.getUTCMinutes()).replace(/.+?(\d{2})$/, "$1");
    ds = ("0" + a.getUTCSeconds()).replace(/.+?(\d{2})$/, "$1");
    ms = ("0" + (a.getUTCMilliseconds() / 5 >> 1)).replace(/.+?(\d{2})$/, "$1");
    readout = dh + ":" + dm + ":" + ds + "." + ms;
    document.clockform.clock.value = readout;
    !0 == show && (clocktimer = setTimeout("startTIME()", 50))
}
function findTIME() {
    0 == init ? (dateObj = new Date, init = 1, show = !0) :
    !0 == show ? (clearTimeout(clocktimer), show = !1, pause = new Date) :
    (show = !0, dateObj = new Date(dateObj.getTime() + (new Date).getTime() - pause.getTime()));
    startTIME()
};
document.onkeypress = function (a) {
    a = window.event ? window.event.keyCode : a.which;
    (13 == a || 32 == a) && findTIME();
    27 == a && clearALL()
};
  </script>
  <title></title>
</head>
<body>
<form name="clockform">
  <table border="0" cellpadding="2" cellspacing="0">
    <tbody>
      <tr>
        <td><input name="clearer" value=" reset "
 onclick="clearALL()" type="button"></td>
        <td><input name="clock" size="12"
 value="00:00:00.00"></td>
      </tr>
      <tr>
        <td><input name="marker" value=" m + "
 onclick="addMEM()" type="button"></td>
        <td><input name="starter" value="start / pause"
 onclick="findTIME()" type="button"></td>
      </tr>
      <tr>
        <td><b>m 0</b></td>
        <td><input name="m0" size="12"></td>
      </tr>
      <tr>
        <td><b>m 1</b></td>
        <td><input name="m1" size="12"></td>
      </tr>
      <tr>
        <td><b>m 2</b></td>
        <td><input name="m2" size="12"></td>
      </tr>
      <tr>
        <td><b>m 3</b></td>
        <td><input name="m3" size="12"></td>
      </tr>
      <tr>
        <td><b>m 4</b></td>
        <td><input name="m4" size="12"></td>
      </tr>
      <tr>
        <td><b>m 5</b></td>
        <td><input name="m5" size="12"></td>
      </tr>
      <tr>
        <td><b>m 6</b></td>
        <td><input name="m6" size="12"></td>
      </tr>
      <tr>
        <td><b>m 7</b></td>
        <td><input name="m7" size="12"></td>
      </tr>
      <tr>
        <td><b>m 8</b></td>
        <td><input name="m8" size="12"></td>
      </tr>
      <tr>
        <td><b>m 9</b></td>
        <td><input name="m9" size="12"></td>
      </tr>
    </tbody>
  </table>
</form>
</body>
</html>
Ответить с цитированием