ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Смена стиля по знаменательным датам

 

3363
Влад @4ih-pqh
вот решил найти замечательную функцию смены стиля по времени тут на форуме,но хочется её доработать,к примеру у меня есть сайт и дабы не париться,выставить тут готовые стили к знаменательным датам,например ко дню святого Валентина или 8 марта,то есть задумка такова,что бы 1 раз сделать и не парить себе мозг в последствии.Возможно переделать скрипт или этот https://vmeste.eu/forum?pid=50817#p50817 не хочу браться сразу за это,так как не уверен в том что получится.Жду мнений 😀 .

<script language="JavaScript">
<!--
function styletime() {
var time = new Date();
var hour = time.getHours();
if(hour > 22 & hour <= 6) { parent.setstyle('style1.css'); }
if(hour > 6 & hour <= 11) { parent.setstyle('style2.css'); }
if(hour > 11 & hour <= 16) { parent.setstyle('style3.css'); }
if(hour > 16 & hour <= 22) { parent.setstyle('style4.css'); }
setTimeout("styletime()",5*60*1000) }
// -->
</script>

<script>styletime();</script>

6600
Александр @admiral
Могу предложить такой скрипт, с которого можно уже сделать все что захочешь, по умолчанию в нем сделано:
1. Смена фона в зависимости от события;
2. оформление самого вывода события

Установка:
1. До </head> вставляем скрипт (можно засунуть и в отдельный файл например holiday.js, естественно без <script> </script> и ссылкой до этого файла)
<script>
var data=new Array (
//ниже три параметра, первые два - дата (день, месяц)события, третий - событие
1,1,'Новый год',
7,1,'Рождество Христово',
14,2,'День Святого Валентина',
23,2,'День защитника Отечества',
8,3,'Международный женский день',
1,4,'День юмора',
1,5,'Первомай',
9,5,'День Победы',
12,6,'День России',
1,9,'День знаний'
);
var mday= new Array (31,28,31,30,31,30,31,31,30,31,30,31);
var tday=new Date();
var day0=tday.getDate();
var day=(day0<10 ? '0' : '') + day0;
var mon0=tday.getMonth()+1;
var mon=(mon0<10 ? '0' : '') + mon0;
var year=tday.getFullYear();
var dow = '';
var down = tday.getDay();
if (down == 0) { dow = 'Вс'; }
else if (down == 1) { dow = 'Пн'; }
else if (down == 2) { dow = 'Вт'; }
else if (down == 3) { dow = 'Ср'; }
else if (down == 4) { dow = 'Чт'; }
else if (down == 5) { dow = 'Пт'; }
else if (down == 6) { dow = 'Сб'; }

function LeapYear (year) {
mday[1]=( (year%4==0) && (year%100!=0) || (year%400==0) ? 29 : 28);
}
LeapYear(year);

function DateFound (d,m) {
var di,mi,i;
for (i=0; i<data.length; i+=3) {
di=data[i];
mi=data[i+1];
if ((d==di) && (m==mi)) {
// ниже для каждого события положить в папку img картинки фонов, в данном случае формата jpg и названием, содержащим день и месяц события
// например для 23 февраля название будет 2302.jpg
// расширение файлов фоновых картинок можно сменить на любое другое
document.getElementById('holiday').style.backgroundImage = 'url('+'img/'+day+mon+'.jpg'+')';
return i;
}
}
return -1;
}

function DisplayDate() {
var i=DateFound(day0,mon0);
if (i>-1) {
//ниже задается вывод и оформление события
document.writeln ('<div align=center>');
document.write(dow + ', ' + day + '.' + mon + '.' + year+': '+data[i+2]);
document.writeln ('</div>');
}
}
</script>

2. Для вывода фона (или любой картинки для события например на фон какого то блока, вобщем на что хватит фантазии) прописываем id holiday, у меня для фона страницы выставлено на body:
<body id="holiday">
3. Ну и сам вывод события в любое место где нужно вывести:
<script>DisplayDate();</script>

3363
Влад @4ih-pqh
Спасибо большое,хотя сам скрипт я себе немного иначе представлял .... посмотрю что с ним можно будет реализовать 😀