Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Замена стиля при определенном времени (https://javascript.ru/forum/dom-window/28006-zamena-stilya-pri-opredelennom-vremeni.html)

9xakep 05.05.2012 13:08

Sergey66628,
что?? o_O
Цитата:

Сообщение от без восемь семь
НАПОДОБИЕ ТАКОГО
<div></div>
<script>
elem=document.getElementsByTagName('div')[0]
date=new Date()
hours=date.getHours()
if(hours>6&&hours<9){
    elem.innerHTML='УТРО'
}
else{
if(hours>=9&&hours<17){
    elem.innerHTML='ДЕНЬ'
     
}
else{
elem.innerHTML='Вечер или ночь'
}
}

Вот нормальный вариант, о чем ты?

denisov 05.05.2012 14:21

Цитата:

Сообщение от denisov (Сообщение 172775)
А как вывод сделать типа:
<div id="myid" class="[вывод скрипта]"></div>
:help:

Немного отошли от темы :)

9xakep 05.05.2012 15:10

А что скрипт должен делать?

denisov 05.05.2012 15:23

Цитата:

Сообщение от 9xakep (Сообщение 172818)
А что скрипт должен делать?

В первом сообщение.
Код:

Если сейчас утро, то класс у дива - morning;
Если сейчас день, то класс у дива - day;
Если сейчас вечер, то класс у дива - evening;
В других случаях - ночь.

Тобишь, <div id="myid" class="[morning | day | evening | night]"></div>

vadim5june 05.05.2012 15:38

Цитата:

Сообщение от denisov (Сообщение 172821)
Тобишь, <div id="myid" class="[morning | day | evening | night]"></div>

--------------
вместо elem.innerHTML='УТРО'
надо elem.className='utro';
итд;

denisov 05.05.2012 15:55

Цитата:

Сообщение от vadim5june (Сообщение 172823)
--------------
вместо elem.innerHTML='УТРО'
надо elem.className='utro';
итд;

<html>
<head>
<script>
elem=document.getElementById('flash');
date=new Date()
hours=date.getHours()
if(hours>6&&hours<9){
	elem.className='morning'
}
else{

if(hours>=9&&hours<17){
	elem.className='day'
	
}
else{
if(hours>=18&hours<21){
	elem.className='evering'
}
else{
elem.className='night'	
}
}
}
</script>
<style>
.day {color:red;}
</style>
</head>
<body style="background:white;">

---

НАПОДОБИЕ ТАКОГО
<div id='flash'>sdddd</div>
<div style="color:red;">ыыыыы</div>
</body>
</html>

Не работает? Или я что-то не так делаю?

P.S. Добавлено:
Через ИЕ показывает:
SCRIPT5007: Не удалось задать значение свойства "className": значением объекта является NULL или он не определен 
in.html, строка 13 символ 2

vadim5june 05.05.2012 16:39

<html>
<head>
<script>
function tim(){
var elem=document.getElementById('flash');
var date=new Date()
var hours=date.getSeconds()
if(hours>6&&hours<19){
elem.className='morning'
}
else
if(hours>=19&&hours<37){
elem.className='day'
}
else
if(hours>=38&hours<48){
elem.className='evering'
}
else{
elem.className='night'
}
};
window.onload=function(){setInterval(tim,1000)}
</script>
<style>
.morning {color:green;}
.day {color:red;}
.evering {color:blue;}
.night {color:black;}
</style>
</head>
<body style="background:white;">
<div id='flash'>color</div>
<div style="color:red;">tratata</div>
</body>
</html>

denisov 05.05.2012 16:46

Цитата:

Сообщение от vadim5june (Сообщение 172838)
<html>
<head>
<script>
function tim(){
var elem=document.getElementById('flash');
var date=new Date()
var hours=date.getSeconds()
if(hours>6&&hours<19){
elem.className='morning'
}
else
if(hours>=19&&hours<37){
elem.className='day'
}
else
if(hours>=38&hours<48){
elem.className='evering'
}
else{
elem.className='night'
}
};
window.onload=function(){setInterval(tim,1000)}
</script>
<style>
.morning {color:green;}
.day {color:red;}
.evering {color:blue;}
.night {color:black;}
</style>
</head>
<body style="background:white;">
<div id='flash'>color</div>
<div style="color:red;">tratata</div>
</body>
</html>

Посмотрел через ИЕ и ФФ, сначала черный цвет, потом (5-7 сек) присваивается зелёный, потом (5-7 сек) красный, потом синий (5-7 сек)...
Тобишь класс меняется всё это время... А мне нужно, что бы определилось какое сейчас время (лучше по серверному), и поставился клас взависимости от этого.

vadim5june 05.05.2012 16:56

ну я сделал что меняется для секунд чтобы было видно
вместо
var hours=date.getSeconds()
снова поставьте
var hours=date.getHours()
и цифры я там заменил верните прежние при сравнении
типа if(hours>=19&&hours<37)
и увеличьте интервал
setInterval(tim,1000*30*60)
-----------
серверного времени на клиенте нет да и лучше клиентское иметь ведь
когда в Москве ночь в Вашингтоне утро
ну и тестировать сутки придется

denisov 10.05.2012 09:12

Цитата:

Сообщение от vadim5june (Сообщение 172841)
ну я сделал что меняется для секунд чтобы было видно
вместо
var hours=date.getSeconds()
снова поставьте
var hours=date.getHours()
и цифры я там заменил верните прежние при сравнении
типа if(hours>=19&&hours<37)
и увеличьте интервал
setInterval(tim,1000*30*60)
-----------
серверного времени на клиенте нет да и лучше клиентское иметь ведь
когда в Москве ночь в Вашингтоне утро
ну и тестировать сутки придется

<html>
<head>
<script>
function tim(){
var elem=document.getElementById('flash');
var date=new Date()
var hours=date.getHours()
if(hours>6&&hours<9){
elem.className='morning'
}
else
if(hours>=9&&hours<18){
elem.className='day'
}
else
if(hours>=18&&hours<21){
elem.className='evering'
}
else{
elem.className='night'
}
};
window.onload=function(){setInterval(tim,1000*30*60)}
</script>
<style>
.morning {color:green;}
.day {color:red;}
.evering {color:blue;}
.night {color:black;}
</style>
</head>
<body style="background:white;">
<div id='flash'>color</div>
<div style="color:red;">tratata</div>
</body>
</html>

Проверял. Сегодня по часам у меня в 9.02, цвет - черный. По часам в 8.40 - тоже черный. Оставил страницу в 9.02, сейчас, в 9.40 поменялся на красный (день). Но при обновлении снова черный :(


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