Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 09.08.2012
Сообщений: 30
1

Как автоматически сменять фон в зависимости от месяца?

15.05.2017, 16:23. Показов 1274. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день! У меня стоит такая задача - мне нужно, чтобы в зависимости от месяца был тот или иной фон. А еще лучше указывать дни. К примеру, с 25 декабря по 20 января я бы хотел, чтобы на моём сайте автоматически сменился фон на "новогодний", изображение которого залито в папку и располагается на сервере естественно.

Вот мой код, который сейчас реализует фон на странице:
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
body{
    background-image:url("images/bg1.jpg");
    background-repeat:no-repeat;
    background-attachment:fixed;
    webkit-background-size: cover;
    moz-background-size: cover;
    o-background-size: cover;
    background-size: cover;
    
    -ms-user-select: none; 
    -moz-user-select: none; 
    -webkit-user-select: none; 
    user-select: none; 
}
Этот код располагается на каждой странице моего сайта. Возможно, нужно поменять код, запихнув этот в css стили, а на каждой странице как-то указать, чтобы фон брался из кода файла css стилей. Чтобы достаточно было изменить код в одном файле и фон изменится во всех. В общем, помогите пожалуйста решить эту проблему.

Добавлено через 1 час 35 минут
Переместил код в стили:
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
body{
    background-image: url("/images/bg1.jpg");
    background-repeat:no-repeat;
    background-attachment:fixed;
    webkit-background-size: cover;
    moz-background-size: cover;
    o-background-size: cover;
    background-size: cover;
    
    -ms-user-select: none; 
    -moz-user-select: none; 
    -webkit-user-select: none; 
    user-select: none; 
}
 
.container {    
        background-image: url("/images/fon.png");   
        width: 850px;
        height: 40000px;
        background-attachment:fixed;
        margin: auto;
        border: 2.5px solid black;
        background-repeat:no-repeat;        
        padding: 10px; 
        margin-bottom: 13px;
        webkit-background-size: cover;
        moz-background-size: cover;
        o-background-size: cover;
        background-size: cover;
        border-radius: 30px;
    }
Все работает. Чтобы лишний раз каждую страницу не загромождать кодом.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2017, 16:23
Ответы с готовыми решениями:

Как обрезать фон по высоте автоматически с учетом контента
Есть фоновое изображение с разрешением 1920х1959 я прописал его на фон контента, но оно...

Как вывести название месяца в зависимости от значения числовой переменной
Доброго времени суток. Я пишу программу, которая с помощью switch выводит на экран название месяца...

График. Как закрасить фон, в зависимости от значения
Добрый день, друзья. Собственно вопрос в том, как сделать такой график, а именно как закрасить фон...

Как автоматически менять разрешение для проекта в зависимости от разрешения экрана?
Kak mojno avtomaticheski menyat' rassherenie dlya proekta v zavisimosti ot rasshireniya ekrana?...

2
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
15.05.2017, 17:34 2
Цитата Сообщение от Alfinavi Посмотреть сообщение
У меня стоит такая задача - мне нужно, чтобы в зависимости от месяца был тот или иной фон
Нет необходимости обращаться к CSS-файлу. Можно через switch-case:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var date = new Date();
switch(date.getMonth()){
  case 0:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 1:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 2:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 3:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 4:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 5:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 6:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 7:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 8:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 9:  document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 10: document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  case 11: document.body.style.backgroundImage = 'url(путь до картинки)'; break;
  default: document.body.style.backgroundImage = 'url(путь до дефолтной картинки)'; break;
}
Поместите код в отдельный файл и подключайте на нужных страницах.
0
0 / 0 / 1
Регистрация: 09.08.2012
Сообщений: 30
16.05.2017, 22:20  [ТС] 3
Лучший ответ Сообщение было отмечено Alfinavi как решение

Решение

Я реализовал это таким способом:
Javascript
1
2
3
4
5
6
7
8
9
10
function setNewYearBg() {
  var now = new Date(),
      month = now.getMonth(),
      day = now.getDate(),   
  if( (month == 11 && day >=27) || (month == 0 && day <= 17) ) {            
            document.body.classList.add('newyear_sunset');      
  }
  else if( (month == 0 && day >=18) || (month == 1 && day <= 22) ) {
    document.body.classList.add('winter');
  }
В CSS стиле:
CSS
1
2
3
body.winter {
  background-image: url("/images/fon/1.jpg");   
}
Ну и так для каждого.

Все работает отлично! Но, я решил добавить еще часы и минуты:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function setNewYearBg() {
  var now = new Date(),
      month = now.getMonth(),
      day = now.getDate(),
      hours = now.getHours(),
      minutes = now.getMinutes();
  if( (month == 11 && day >=27) || (month == 0 && day <= 17) ) {    
        if(hours >= 17 && minutes >= 20) || (hours <= 8 && minutes <= 29 ) {
            document.body.classList.add('newyear_night');
        }
        else if(hours >= 8 && minutes >= 30) || (hours <= 9 && minutes <= 59 ) {
            document.body.classList.add('newyear_sunrise');
        }  
        else if(hours >= 10 && minutes >= 00) || (hours <= 16 && minutes <= 29 ) {
            document.body.classList.add('newyear_day');
        } 
        else if(hours >= 16 && minutes >= 30) || (hours <= 17 && minutes <= 19 ) {
            document.body.classList.add('newyear_sunset');
        } 
  }
  else if( (month == 0 && day >=18) || (month == 1 && day <= 22) ) {
    document.body.classList.add('winter');
  }
И теперь почему то белый фон, когда я проверяю меняя локальную дату на, к примеру, 20 февраля, т.е. попадая во второе условие. Даже если ошибка в первом условии, куда я добавил часы и минуты, то почему он его мимо не пройдет? Ведь дата не удовлетворяет условиям первого if. Как только убираю if с часами и минутами - всё снова работает. В чём может быть проблема?

Добавлено через 1 час 29 минут
проблема решена! Забыл поставит скобки в условиях с часами и минутами:
Javascript
1
if ( (hours >= 17 && minutes >= 20) || (hours <= 8 && minutes <= 29 ) ) {
0
16.05.2017, 22:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2017, 22:20
Помогаю со студенческими работами здесь

Планирование ТО и ППР. Как присвоить автоматически имя ячейке в зависимости от времени
Доброго времени суток! Уважаемые, создаю план-график технического обслуживания, ломаю голову на...

Как автоматически подстраивать ширину колонки TableView в зависимости от содержимого ячеек?
Когда на заголовке колонки кликаешь дважды - ширина регулируется по максимальной длине ячеек. (Так...

Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Здравствуйте. В программе использую две темы светлую и темную: &lt;style name=&quot;BlackTheme&quot; ...

Как сделать чтобы фон повторялся, в зависимости от количества содеожания?
Вроде бы задача тривиальна, но стала для меня проблемой. Необходимо сверстать следующее: Я...

Jquery слайдер, как сменять только изображения
Нужна помощь. Есть не плохой jquery слайдер - Super. Simple. Slider. (SSS) Он сменяет...

Как сменять контент в ASP.NET без полной загрузки?
Здравствуйте, я ни как не могу разобраться с тем что в ASP.NET нет фреймов и как реализовать такую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru