Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.12.2010, 23:26
Новичок на форуме
Отправить личное сообщение для castor Посмотреть профиль Найти все сообщения от castor
 
Регистрация: 09.12.2010
Сообщений: 7

new Date().getDay()
Только 0 соответствует вс.
Если нужно привести к виду пн - 0, вт - 1, ..., вс - 6, то так:
(new Date().getDay() + 6) % 7

Ну и вместо генерации аж 7(!) файлов есть работа со стилями
document.styleSheets - массив таблиц
addRule(), insertRule() - методы конкретной таблицы (для IE и остальных)

Плюс - не нужно отдельных запросов, все делается в одном скрипте.

Цитата:
c помощью метода day объекта Date
Нет такого метода. Есть getDay().
Ответить с цитированием
  #12 (permalink)  
Старый 10.12.2010, 23:48
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от castor
Только 0 соответствует вс.
в конкретном случае не важно

Сообщение от castor
Ну и вместо генерации аж 7(!)
А если нужно менять полностью стиль страницы?

Сообщение от castor
document.styleSheets - массив таблиц
addRule(), insertRule() - методы конкретной таблицы (для IE и остальных)
addRule(), insertRule() - IE, Safari 4.0+, Chrome 4+

Сообщение от castor
Плюс - не нужно отдельных запросов, все делается в одном скрипте.
А кто спорит


Самый простой способ менять стиль элемента в зависимости от дня недели:
<script type="text/javascript">
window.onload = function(){
    var array = ['#DC1C1C', '#1CCCDC', '#1CDC6C', '#425C4D', '#B8DC00', '#DC00B6', '#A2A2A2'];
    document.getElementsByTagName('div')[0].style.background = array[new Date().getDay()];
};
</script>
<div style="width: 200px; height: 200px;"></div>

Последний раз редактировалось monolithed, 11.12.2010 в 11:41.
Ответить с цитированием
  #13 (permalink)  
Старый 11.12.2010, 11:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

monolithed, интересно это зачем? )))
<script type="text/javascript">
window.onload = function(){
    var array = ['#DC1C1C', '#1CCCDC', '#1CDC6C', '#425C4D', '#B8DC00', '#DC00B6', '#A2A2A2'], i = array.length;
*!*
   while(i--){
        array.push(i);
    }
*/!*
    document.getElementsByTagName('div')[0].style.background = array[new Date().getDay()];
};
</script>
<div style="width: 200px; height: 200px;"></div>
Ответить с цитированием
  #14 (permalink)  
Старый 11.12.2010, 11:41
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

рони, ага тупанул что-то (с предыдущих примеров осталось)))
Ответить с цитированием
  #15 (permalink)  
Старый 11.12.2010, 11:50
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

я считаю, самый оптимальный вариант - на сервере назначать body нужный класс(mon, tue, wed...), а в css переопределять нужные свойства в зависимости от наличия того или иного класса. Таким образом, не размазываем css по html и имеем разные значения свойств друг возле друга:
.mon div {
    background: red;
}
.tue div {
    background: green;
}
.wed div {
    background: blue;
}
Ответить с цитированием
  #16 (permalink)  
Старый 11.12.2010, 12:01
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от monolithed
с предыдущих примеров осталось
Так а тут зачем цикл? Не проще просто инициализировать весь массив, там же не так много элементов:
<script type="text/javascript">
window.onload = function(){
    document.getElementsByTagName('link')[0].setAttribute('href', 'style'+[0,1,2,3,4,5,6][new Date().getDay()]+'.css');
};
</script>
Ответить с цитированием
  #17 (permalink)  
Старый 11.12.2010, 12:08
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

А, вообще, думаю, что это не лучшая идея, загружать страницу, а потом перерисовывать ее, подгружая цсс
Ответить с цитированием
  #18 (permalink)  
Старый 11.12.2010, 16:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Сообщение от Sweet Посмотреть сообщение
А, вообще, думаю, что это не лучшая идея, загружать страницу, а потом перерисовывать ее, подгружая цсс
Можно по-старинке)) :
<script type="text/javascript">document.write('<link rel="stylesheet" href="style_' + new Date().getDay() + '.css">')</script>


А вообще - решение по-любому надо делать на серваке.
Ответить с цитированием
  #19 (permalink)  
Старый 11.12.2010, 16:58
Новичок на форуме
Отправить личное сообщение для castor Посмотреть профиль Найти все сообщения от castor
 
Регистрация: 09.12.2010
Сообщений: 7

Цитата:
Можно по-старинке))
Это вообще-то называется "через ж..у". Писать в body style или link - как же непрофессионализм достал.
Цитата:
А вообще - решение по-любому надо делать на серваке.
А вообще - решение зависит от конкретных условий. Так что вовсе не по-любому.
Ответить с цитированием
  #20 (permalink)  
Старый 11.12.2010, 17:32
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от castor
Писать в body style или link
А кто говорил про body? Имелось ввиду как раз наоборот, делать document.write именно в head
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обновление в зависимости от дня недели Empty2112 Общие вопросы Javascript 13 16.09.2010 16:24