Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2012, 14:29
Новичок на форуме
Отправить личное сообщение для ravchik Посмотреть профиль Найти все сообщения от ravchik
 
Регистрация: 22.09.2011
Сообщений: 3

Сменя CSS в определенный день недели
Доброго времени суток!
Нужен скрипт смены css-стиля в определенный день недели.. Пользовался поиском, нашел скрипт смены по дням недели (вс-пн) - вот тут, но мне нужно, чтобы CSS менялся на другой только в пятницу, а в остальные дни был обычный.
В javascript полный чайник...
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2012, 16:12
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

if((new Date()).getDay() == 5){
element.className = 'friday-class'
}else {
element.className = 'other-all-class'
}
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2012, 16:14
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

<link rel="stylesheet" href="style.css">
<script>
(function(){
  var date = new Date(),
      time = +date,
      day = ( 12 - date.getDay() ) % 7 ;
  function friday(){
    document.getElementsByTagName('link')[0].setAttribute('href', 'friday.css')
  }
  if(day) {//не пятница
    date.setDate( date.getDate() + day )
    date.setHours( 0, 0, 0, 0 )
    setTimeout( friday , date - time )
  }else{  //пятница
    friday()
  }
})()
</script>

=))
__________________
29375, 35

Последний раз редактировалось Aetae, 25.01.2012 в 16:37.
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2012, 16:17
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от Aetae
day = ( 12 - date.getDay() ) % 7 ;
Нафига? Так каждый день будет пятница
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #5 (permalink)  
Старый 25.01.2012, 16:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

?
alert(( 12 - new Date().getDay() ) % 7 + ' дня до пятницы')
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 25.01.2012, 16:31
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от Aetae
if(day !== 5) {//не пятница
Ну тут же ты не проверяешь сколько дней до пятницы, а проверяешь какой сегодня день. day === 5 будет только при getDay() === 0, чего собственно не бывает.

Да, это я опечатался тоже, будет не пятницей каждый день.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 25.01.2012, 16:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Да есть такое, поправил.
На коленке делал, так что я не виноват.)
P.S. getDay() === 0 - бывает, это воскресенье.
__________________
29375, 35

Последний раз редактировалось Aetae, 25.01.2012 в 16:41.
Ответить с цитированием
  #8 (permalink)  
Старый 25.01.2012, 17:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Вариант ...
var day = ['воскресенья','понедельника','вторника','среды','чеверга','пятницы','субботы']
var data =  (new Date()).getDay();
var arr = [];
for (var i=0; i<7; i++)  {
arr[i]= i - (data>i?(data-7):data) + ' дня до '+day[i]
}
alert(arr.join('\n'))
Ответить с цитированием
  #9 (permalink)  
Старый 25.01.2012, 17:19
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от Aetae
P.S. getDay() === 0 - бывает, это воскресенье.
Хм, а я подумал с единицы считается, хотя таки не правильно предположение.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #10 (permalink)  
Старый 25.01.2012, 17:53
Новичок на форуме
Отправить личное сообщение для ravchik Посмотреть профиль Найти все сообщения от ravchik
 
Регистрация: 22.09.2011
Сообщений: 3

Aetae, подправил скрипт под себя (движок DLE):
<link rel="stylesheet" href="{THEME}/css/style.css" type="text/css" media="screen, projection" />
<script>
(function(){
  var date = new Date(),
      time = +date,
      day = ( 12 - date.getDay() ) % 7 ;
  function friday(){
    document.getElementsByTagName('link')[0].setAttribute('href', '{THEME}/css/friday.css')
  }
  if(day) {//не пятница
    date.setDate( date.getDate() + day )
    date.setHours( 0, 0, 0, 0 )
    setTimeout( friday , date - time )
  }else{  //пятница
    friday()
  }
})()
</script>

Не работает... (менял дату на локальном компьютере)
Имеет значение, что на странице подключены 2 css-файла? Я так полагаю, что скрипт должен, при условии что сегодня пятница, заменять файл style.css на friday.css в элементе <link href="">?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery CSS анализатор javascript jQuery 2 15.08.2010 21:27
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58