Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2013, 16:19
Новичок на форуме
Отправить личное сообщение для Dlopoel Посмотреть профиль Найти все сообщения от Dlopoel
 
Регистрация: 03.03.2013
Сообщений: 2

Смена цвета фона каждую минуту
Имеется обычный скрипт часов:

<html>

<head>
<title>Часы</title>
</head>
<script>
function cl() {
var t = new Date()
document.form1.s1.value = t.toLocaleString()
setTimeout('cl()', 1000)
}
</script>

<body OnLoad="cl()">
<center>
<form name=form1>
<input type=text size=21 name=s1>
</form>
</center>
</body>

</html>

Нужно, чтобы когда на часах было 00 секунд, т.е. каждую минуту - цвет фона менялся на "рандом"(другой), никак не могу сообразить как это реализовать.

Последний раз редактировалось Dlopoel, 03.03.2013 в 19:37.
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2013, 19:41
Новичок на форуме
Отправить личное сообщение для Dlopoel Посмотреть профиль Найти все сообщения от Dlopoel
 
Регистрация: 03.03.2013
Сообщений: 2

Покопавшись на сайте нашел функцию, теперь код выглядит так:

<html>
<head>
<title>Часы</title>
</head>
<script>
function rgb()
{
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
var rgb = 'rgb(' + r + ',' + g + ',' + b + ')';
document.body.style.backgroundColor = rgb;
}
setInterval('rgb()',60000)
</script>
<script>
function cl()
{
var t=new Date()
document.form1.s1.value=t.toLocaleString()
setTimeout('cl()',1000)
}
</script>
<body OnLoad="cl()">
<center>
<form name=form1>
<input type=text size=21 name=s1>
</form>
</center>
</body>
</html>

Но к моему огромному сожалению функция "setInterval" не привязана к часам, и работает с того момента как запустили документ, соответственно вопрос остается тем же, как поставить смену цвета фона на каждую минуту по часам компьютера?
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2013, 19:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Dlopoel
Нужно, чтобы когда на часах было 00 секунд, т.е. каждую минуту - цвет фона менялся
Например так...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function cl() {
	var t = new Date();
	if (t.getSeconds()==0) {
		// меняй фон
	};
	document.form1.s1.value = t.toLocaleString();
	setTimeout('cl()', 1000);
}
</script>
</head>
<body onload="cl()">
<center>
	<form name=form1>
		<input type=text size=21 name=s1 />
	</form>
</center>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2013, 23:18
Интересующийся
Отправить личное сообщение для user222 Посмотреть профиль Найти все сообщения от user222
 
Регистрация: 03.03.2013
Сообщений: 15

Я тут сам за помощью пришёл, так что мой вариант не обязательно правильный, но я бы сделал так:
<html>
    
    <head>
        <title>Часы</title>
    </head>
    <script>
        function loaded() { //вызывается при загрузке
            changeColor(); //удалить, если после загрузки НЕ нужна смена фона
            var now = new Date().getTime(); //получаем время
            var remain = 60000 - (now % 60000); //узнаем сколько осталось до 00
            setTimeout(function () { //ждём до 00
                setInterval(changeColor, 60 * 1000); //запускаем каждые 60сек
                changeColor(); //запускаем сейчас, т.к. сейчас 00
            }, remain);
        }

        function changeColor() { //функция смены фона, не менял
            var r = Math.floor(Math.random() * 256);
            var g = Math.floor(Math.random() * 256);
            var b = Math.floor(Math.random() * 256);
            var rgb = 'rgb(' + r + ',' + g + ',' + b + ')';
            document.body.style.backgroundColor = rgb;
        }
    </script>
    
    <body onload="loaded()">
        <center>
            <form name=form1>
                <input type=text size=21 name=s1>
            </form>
        </center>
    </body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2013, 23:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

user222,
В точном ожидании 00 смысла сильного нет
Во первых - у 60% юзеров время отличается от реального на 10-40 сек
И восстанавливается раз в неделю по синхронизации компутерных часов.

Единственное обоснование такой нужды, синхронизация с каким-то показывающим время устройством на странице(тогда плясать стоит именно от него

Последний раз редактировалось Deff, 03.03.2013 в 23:26.
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2013, 23:36
Интересующийся
Отправить личное сообщение для user222 Посмотреть профиль Найти все сообщения от user222
 
Регистрация: 03.03.2013
Сообщений: 15

Deff,
Я просто не понимаю зачем ksa запускает проверку 60 раз в минуту. Только из-за этого предлагаю вариант с запуском 1 раз в минуту.
Ответить с цитированием
  #7 (permalink)  
Старый 04.03.2013, 00:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

user222,
ksa, Просто хотел продемонстрировать что совпадает с часами, поскольку Вы так сказали...*А часы посекундные
Ответить с цитированием
  #8 (permalink)  
Старый 04.03.2013, 17:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Deff
ksa, Просто хотел продемонстрировать что совпадает с часами
Да, именно так.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена фона и цвета ссылки, если посетитель находиться на ней Gawk Общие вопросы Javascript 4 19.02.2012 15:27
Смена фона при наведении Crystal Элементы интерфейса 3 13.10.2011 12:23
Бесконечная смена цвета текста iGusse Элементы интерфейса 4 08.10.2011 22:03
Менять цвета фона (оплачу) cmd Flash 1 10.07.2011 17:15
случайная смена фона сайта на jquery Netherlandman jQuery 8 25.08.2010 03:11