|
Небольшой скрипт
|
|
| Jampire | Дата: 27 Июля 2011, 13:21 | Сообщение # 1 |  ● ● ● ● ● 220 сообщений Статус: Offline | Требуется вывести таймер с отчетом до указанного времени (наприм. 20:00). После наступления времени - начинался отсчет до следующего дня (до этого же времени) Прошу подкинуть идею, как это реализовать. Заранее спасибо! | | |
|
| exec | Дата: 27 Июля 2011, 23:34 | Сообщение # 2 |  ● ● ● ● ● 199 сообщений Статус: Offline | Code <span id='timer'>0:00:00</span> <script type='text/javascript'> (function () { var timer = document.getElementById("timer"), h = 20, m = 0, s = 0; // 20:00:00 setInterval(function () { var now = new Date, dh = h - now.getHours(), dm = 60 + m - now.getMinutes() ds = 60 + s - now.getSeconds(); if (dm || ds) --dh; if (dh < 0) dh += 24; timer.innerHTML = fix(dh) + ":" + fix(dm) + ":" + fix(ds); }, 1000); function fix(x) { return (x < 10 ? "0" : "") + x; } })(); </script> | | |
|
| Jampire | Отредактировал Jampire - Четверг, 28 Июля 2011, 05:59 Дата: 28 Июля 2011, 05:09 | Сообщение # 3 |  ● ● ● ● ● 220 сообщений Статус: Offline | Работает отлично:) А от куда вычисляется время? Локальное на компьютере? Желательно вычислять его тегами ucoz, что-бы у всех счетчик показывал одно время.
Добавлено: Code <div align="center"><span style="font-size:10pt"><b><span id='timer'>До события осталось: 0:00:00!</span></b></span></div> <script type='text/javascript'> (function () { var timer = document.getElementById("timer"), h = 19, m = 0, s = 0; setInterval(function () { var now = new Date, dh = h - now.getHours(), dm = 60 + m - now.getMinutes() + 1, // пришлось временно калибровать ds = 60 + s - now.getSeconds(); if (dm || ds) --dh; if (dh < 0) dh += 24; timer.innerHTML = "До начала события осталось: " + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "!";
if (dh < 1) timer.innerHTML = "До начала события осталось: <span style='color: red; text-decoration: underline;'>" + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "</span>! [ Cтадия подготовки ]";
if (dh < 1 & mh < 5) timer.innerHTML = "До начала события осталось: <span style='color: red; text-decoration: underline blink;'>" + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "</span>! [ Обратный отсчет ]"; }, 1000); function fix(x) { return (x < 10 ? "0" : "") + x; } })(); </script> Требуется добавить еще одно условие. Но с ним я самостоятельно не справился. "Если до события осталось больше 23 часов (первый час после начала) - выводить время, сколько это событие уже идет" И еще пожалуй мелкий недочет. На последней секунде минуты - не отображается 00, а сразу идет 60. Одно и тоже, но если это не трудно исправить - буду очень благодарен. | | |
|
| exec | Отредактировал exec - Четверг, 28 Июля 2011, 07:55 Дата: 28 Июля 2011, 07:47 | Сообщение # 4 |  ● ● ● ● ● 199 сообщений Статус: Offline | Code <span id='timer'>0:00:00</span> <script type='text/javascript'> (function () { var timer = document.getElementById("timer"), h = 20, m = 0, s = 0; // 20:00:00 setInterval(function () { var now = new Date, dh = h - now.getHours(), dm = 59 + m - now.getMinutes() ds = 59 + s - now.getSeconds(); if (dm || ds) --dh; if (dh < 0) dh += 24; if (dh === 23) { dh = 23 - dh; dm = 59 - dm; ds = 59 - ds; } timer.innerHTML = fix(dh) + ":" + fix(dm) + ":" + fix(ds); }, 1000); function fix(x) { return (x < 10 ? "0" : "") + x; } })(); </script> | | |
|
| Jampire | Отредактировал Jampire - Четверг, 28 Июля 2011, 19:29 Дата: 28 Июля 2011, 17:03 | Сообщение # 5 |  ● ● ● ● ● 220 сообщений Статус: Offline | Первая часть вопроса решена:) P.S. кинул плюсик:)
Осталась другая проблема... У разных людей - время до события разное:(
Добавлено (28 Июль 2011, 17:03) --------------------------------------------- Code <script type='text/javascript'> (function () { var timer = document.getElementById("timer"), h = 19, m = 0, s = 0; setInterval(function () { var now = new Date, dh = h - $HOUR$ + 1, dm = 59 + m - now.getMinutes(), ds = 59 + s - now.getSeconds();
if (dm || ds) { --dh;}
if (dh < 0) { dh += 24; timer.innerHTML = "До начала события осталось: <span>" + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "</span>! [ Ожидание ]";}
if (dh === 23) { dh = 23 - dh; dm = 59 - dm; ds = 59 - ds;}
if (dh < 1) { timer.innerHTML = "До начала события осталось: <span style='color: red; text-decoration: underline; text-shadow: green 1px 1px 2px, red 0 0 1em'>" + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "</span>! [ Подготовка ]";}
if (dh < 1 && mh < 5) { timer.innerHTML = "До начала события осталось: <span style='color: red; text-decoration: underline blink; text-shadow: red 1px 1px 2px, red 0 0 1em'>" + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "</span>! [ Начало ]";}
if (dh < 22 || dh > 2) { timer.innerHTML = "До начала события осталось: <span>" + fix(dh) + ":" + fix(dm) + ":" + fix(ds) + "</span>! [ Регистрация ]";} }, 0); function fix(x) { return (x < 10 ? "0" : "") + x; } })(); </script> 1) У разных людей отображается разное время. 2) Надпись Регистрация должна добавляться через 2 часа после начала события, и исчезать за 2 часа до начала. Сейчас она висит всегда:( 3) Нужно добавить условие которое после начала события, в течении часа выводить отсчет до конца события (событие длиться 1 час).
За каждый пункт - по одному + (при условии если их выполнит 1 человек, буду должен:)
Заранее спасибо большое!
Добавлено: Блин, ужас:( Когда начало подходить время до начала, все указанные мной события не сработали Вообщем даже не знаю как дальше быть( | | |
|
| exec | Дата: 28 Июля 2011, 21:02 | Сообщение # 6 |  ● ● ● ● ● 199 сообщений Статус: Offline | 1) У разных людей отображается разное время. 2) Надпись Регистрация должна добавляться через 2 часа после начала события, и исчезать за 2 часа до начала. Сейчас она висит всегда:( 3) Нужно добавить условие которое после начала события, в течении часа выводить отсчет до конца события (событие длиться 1 час).
А сразу нельзя было про это написать? | | |
|
| Jampire | Дата: 29 Июля 2011, 12:22 | Сообщение # 7 |  ● ● ● ● ● 220 сообщений Статус: Offline | Извиняюсь, изначально не так вопросы поставил:( | | |
|