Смена дизайна в зависимости от времени суток
Многим из Вас встречались сайты, где днём и ночью разный дизайн. Например, днём он светлый, а ночью, чтобы не слепить слишком сильно, он, наоборот, делается более тёмным. В этой статье я расскажу, как делается такая смена дизайна в зависимости от времени суток.
Первым делом, Вам необходимо сделать 2 CSS-файла: дневной вариант и ночной. Пусть это будут файлы day.css и night.css соответственно.
Вычисление времени суток и подключение соответствующего файла стилей можно делать как на JavaScript, так и на PHP. Но во втором случае нам будет сложно выяснить часовой пояс посетителя, а, как следствие, его время. У нас на сервере может быть день, а у посетителя глубокая ночь, а ему будет выводиться дневной дизайн, что весьма странно. Тогда как в JavaScript в этом плане проблем нет. Поэтому мы с Вами реализуем скрипт смены дизайна через JavaScript, чтобы это работало максимально корректно.
Итак, полный код всего этого приведён ниже:
<link id="style" rel="stylesheet" type="text/css" href="css/day.css" />
<script type="text/javascript">
var date = new Date(); // Получаем текущие дату и время
var h = date.getHours(); // Получаем текущий час
if (h < 8 || h > 21) document.getElementById("style").href = "css/night.css"; // Если сейчас ночь, то меняем файл стилей
</script>
Код очень простой. По умолчанию подключается дневной файл стилей. И он, кстати, останется у тех, у кого отключён JavaScript. Для тех, у кого он включён, и при этом сейчас ночь, он поменяется на ночной файл стилей. Как видите, скрипт очень простой.
Если хотите потренироваться, то можете улучшить скрипт смены дизайна сайта в зависимости от времени суток, добавив учёт текущего дня и месяца. Очевидно, что 20-го декабря в 18:00 уже фактически ночь на улице, тогда как 20-го июня и в 21:00 ещё светло. Поэтому в качестве тренировки можете придумать алгоритм, который будет это учитывать.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.