В общем, условие задачи неполное. Наиболее логичная задача - выводить оставшееся время.
При запуске или получении страницей фокуса проверяем наличие кукиса. Если его нет: - записываем кукис с временем старта - начинаем отсчет Если кукис есть: - считываем кукис - смотрим который сейчас час (дата) - корректируем счетчик - запускаем дальше Если окно запущено и находится в фоне, нам ведь все равно, что там отображается в таймере, да? Пусть он там замедленно считает. |
Цитата:
Равно как и полицию. Мало ли, что они решат, что отсчитывает таймер. Вызовут собак-миноискателей еще, прости Господи |
BETEPAH, :lol:
|
Вот, на всякий случай вытянул из своих сниппетов:
//проверка активна ли в настоящий момент вкладка браузера
var isActive = true;
function onBlur() {isActive = false;};
function onFocus() {isActive = true;};
if (/*@cc_on!@*/false) { // check for Internet Explorer
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
|
таймер до конца дня осталось или таймер на шестидневку
:write: до 2 октября ... до 8 октября ... до 14 октября ...
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body><div id = 'show'></div>
<script type="text/javascript">
function two(a) {
return (9 < a ? "" : "0") + a
}
function formatTime(a) {
a = Math.floor(a / 1E3);
var b = Math.floor(a / 60),
c = Math.floor(b / 60),
d = c / 24 | 0,
c = c % 24;
a %= 60;
b %= 60;
return d + " " + days(d) + " " + two(c) + " " + hours(c) + " " + two(b) + " " + minutes(b) + " " + two(a) + " " + seconds(a)
};
// функция для склонения слов ( (1)"день", (2)"дня", (5)"дней")
function plural(str1,str2,str5){
return function ( n ) {return ((((n%10)==1)&&((n%100)!=11))?(str1):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(str2):(str5)))}
}
var days = plural('день', 'дня', 'дней'),
hours = plural('час', 'часа', 'часов'),
minutes = plural('минута', 'минуты', 'минут'),
seconds = plural('секунда', 'секунды', 'секунд');
function Time() {
var data = Date.parse('02/01/2014') // дата начала 1 шестидневки строго "месяц/день/год"
data = new Date(data);
data.setMinutes((-180 - data.getTimezoneOffset()), 0, 0); //для коррекции запустить в зоне акции alert((new Date).getTimezoneOffset()) и поменять число
for (; (new Date).getTime() > data; ) {
data.setDate(data.getDate()+6)//через сутки +1 , через 6 дней +6
}
var a = data.getTime() - (new Date).getTime();
document.getElementById("show").innerHTML = "До " + data.toLocaleString() + " по Москве осталось: " + formatTime(a);
window.setTimeout(Time, 1E3)
};
Time()
</script>
</body>
</html>
|
Два дня искал такой код))) Спасибо величайшее Рони!! :) :dance:
|
function plural(n,str1,str2,str5){
var tst = (n%100); if(tst>20) tst =tst %10;
if(!tst) return str5;
if(tst==1) return str1;
if(tst<5) return str2;
if(tst>4) return str5;
}
|
Рони, подскажите как в ваш код добавить элементам скрипта классы, чтобы можно было стили прописать
|
Kasper28,
нарисуйте свои элементы с классами |
Что вы имеете ввиду "нарисуйте"?
|
| Часовой пояс GMT +3, время: 02:03. |