
Заглушка для сайта с таймером обратного отсчета
Когда сайт ожидает запуска или находится на реконструкции, существует потребность уведомить посетителей сайта о скором открытии. И прекрасным решением этой проблемы является создание посадочной страницы с соответствующим уведомлением.
По мере развития современных инструментов веб-разработки, подобные страницы превратились из простых страниц с текстом в более интересные решения.
Создание подобной заглушки для сайта повышает уровень ожидания посетителей, тем самым создавая у них интерес. Помимо простого уведомления, также можно собрать информацию о заинтересованных пользователях посредством вставки форм подписки и обратной связи.
В этом уроке мы создадим именно такую заглушку для сайта, которая будет содержать форму подписки и таймер обратного отсчета, реализованный с помощью JQuery-плагина от Кейта Вуда.
Нужные для урока материалы:
- Шрифт Open Sans (Google Font)
- Шрифт Montserrat (Google Font)
- reset.css (таблица стилей)
- Библиотека JQuery
- JQuery-плагин обратного отсчета
- Любое фоновое изображение
- Время и терпение.
Структура файлов проекта:

Структура файлов проекта
index.html — основной файл проекта
папка «js» — папка с JavaScript/JQuery скриптами
папка «img» — папка с изображениями проекта
папка «css» — папка с таблицами стилей проекта (css-файлы)
Приступаем к работе
Первым этапом работы у нас будет подключение к основному html-файлу таблиц стилей и jquery-библиотеки.
Подключаем файлы внутри тега head.
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="width=device-width, initial-scale=1, maximum-scale=1" name=
"viewport">
<title>Coming Soon with Counter</title>
<link href=
'https://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,700italic,400,600,300,700,800'
rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,700' rel=
'stylesheet' type='text/css'>
<link href="css/reset.css" media="screen" rel="stylesheet">
<link href="css/style.css" media="screen" rel="stylesheet">
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
</head>
HTML
Для нашего html-документа создадим разметку. Все элементы страницы будут находиться внутри тега div с идентификатором «container». Внутри этого блока у нас будут заголовки, счетчик, форма обратной связи и футер (нижний блок с авторскими правами).
<body>
<div class="container">
<header>
<h1>Our website is Coming Soon</h1>
</header>
<section>
<h2>WE APOLOGIZE FOR INCONVENIENCE</h2>
<p class="details">YOU NEED TO WAIT...</p>
<div id="counter"></div>
<p class="details">SEND ME DETAILS ABOUT IT</p>
<div id="subscribe">
<form action="" id="subscribe-form" method="post" name=
"newsletter-form">
<p class="form-field"><input id="subcribe_email" name=
"subscribe_email" placeholder="Your email" type="email"
value=""></p>
<p class="form-submit"><input id="subscribe_submit" name=
"subscribe_submit" type="submit" value="Notify Me"></p>
</form>
</div>
</section>
<footer>
<a href="http://www.1stwebdesigner.com/" target="_blank">Copyright
- 1stwebdesigner.com - 2014</a>
</footer>
</div>
Обратите внимание, что мы оставили пустым блок div с идентификатором «counter». Этот идентификатор мы позже используем, чтобы связать его с нашим jquery-плагином и добавим к нему css-стили.
Если сохранить файл index.html и посмотреть его в браузере, то должна быть такая картина:

Разметка HTML
CSS
Теперь создадим для нашего проекта css-файл, в котором будут расположены все стили. В первую очередь добавим стили для основных элементов: body, h1, h2 и блока с идентификатором «container». Для блока «container» ширину указываем в процентах, чтобы он изменялся в зависимости от размера окна браузера.
Для тега h1 применим CSS3 трансформацию, что позволит ему вращаться на 360 градусов по оси X. Подробнее об этом свойстве можно прочитать здесь.
body {
color: #dadada;
line-height: 1.75;
width: 100%;
background: url(../img/background.jpg)center;
font-family: 'Open Sans';
}
h1,h2{
color: #fff;
line-height: 1.16667;
text-align: center;
text-transform: uppercase;
text-shadow: 2px 2px 2px rgba(150,150,150,1);
}
h1 {
font-size: 43px;
font-family: Montserrat;
font-weight: 700;
border: 2px dashed #fff;
margin-top: 50px;
padding: 10px;
cursor: pointer;
-webkit-transition: all .8s ease;
-moz-transition: all .8s ease;
-o-transition: all .8s ease;
transition: all .8s ease;
}
h1:hover {
-webkit-transform: rotateX(360deg);
-moz-transform: rotateX(360deg);
-ms-transform: rotateX(360deg);
-o-transform: rotateX(360deg);
transform: rotateX(360deg);
}
h2 {
font-size: 30px;
font-weight: 300;
margin-top: 30px;
}
.container {
width: 58%;
margin: 40px auto 0;
}
.details {
margin-top: 30px;
color: #fff;
text-align: center;
text-shadow: 2px 2px 2px rgba(150,150,150,1);
}
Далее применим для элементов формы стили, расположенные ниже. Таким образом мы оформим наше текстовое поле и кнопку.
button,input,textarea {
font-size: 16px;
max-width: 100%;
margin: 0;
border-radius: 0;
vertical-align: baseline;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
textarea {
overflow: auto;
vertical-align: top;
}
input,textarea {
background: #6e6e6e;
background: rgba(169,169,169,0.3);
border: 1px solid #f4f4f4;
color: #fff;
font-weight: 700;
letter-spacing: 1px;
padding: 12px;
text-transform: uppercase;
}
input:focus,textarea:focus {
outline: 0;
}
button:hover,button:focus,input[type=submit]:focus,input[type=submit]:hover {
background: #ff8721;
color: #fff;
outline: 0;
}
button,input[type=submit] {
-webkit-appearance: button;
cursor: pointer;
}
button,input[type=submit] {
background: #ffab00;
-webkit-transition: all .5s;
-moz-transition: all .5s;
transition: all .5s;
}
.form-field {
position: relative;
}
Следующим шагом у нас будет создание кроссбраузерного стиля для текстового поля.
::-webkit-input-placeholder {
color: #fff;
}
::-moz-placeholder {
color: #fff;
opacity: 1;
}
::-ms-input-placeholder {
color: #fff;
opacity: 1;
}
.placeholder {
color: #ff;
}
Теперь создадим стили для нашего счетчика. Напомню, что в html-документе он находится в блоке div с идентификатором «counter».
#counter {
margin-top: 28px;
}
.countdown_section {
color: #dadada;
display: inline-block;
font-size: 12px;
text-align: center;
width: 25%;
letter-spacing: 1px;
border-left: 1px dashed #dadada;
border-color: rgba(218,218,218,0.8);
padding: 42px 12px 28px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
text-shadow: 2px 2px 2px rgba(150,150,150,1);
text-transform: uppercase;
}
.countdown_section:first-child {
border-left: 0;
}
.countdown_amount {
color: #fff;
display: block;
font-family: 'Open Sans';
font-size: 60px;
font-weight: 700;
letter-spacing: normal;
line-height: 1;
}
Теперь давайте добавим стилей для формы обратной связи. Максимальная ширина формы будет составлять 610px и установим для этой формы относительное позиционирование (position:relative). Расположим кнопку для отправки сообщения справа от текстового блока и установим для него абсолютное позиционирование (position:absolute).
#subscribe {
max-width: 610px;
position: relative;
margin: 20px auto 0;
}
#subscribe-form .form-field {
margin-right: 180px;
}
#subcribe_email {
border-right: 0;
}
#subscribe-form .form-submit {
height: 50px;
position: absolute;
right: 0;
top: 0;
width: 180px;
}
#subcribe_email,#subscribe_submit {
width: 100%;
display: block;
height: 55px;
}
И в конце добавим свойств для элементов блока footer.
footer {
font-size: 13px;
text-align: center;
margin-top: 25px;
text-transform: uppercase;
text-shadow: 2px 2px 2px rgba(150,150,150,1);
}
footer a {
color: #fff;
}
Чтобы наша страница была отзывчивой, добавим медиа-запросы. Подробнее об этом свойстве можно прочитать тут (англ.)
@media only screen and (max-width: 720px) {
footer{margin-bottom: 40px; }
}
@media only screen and (max-width: 680px) {
.countdown_amount {
font-size: 48px;
}
}
@media only screen and (max-width: 540px) {
.one-half {
width: 100%;
}
.countdown_section {
padding: 28px 6px 20px;
}
#subcribe_email{border: 1px solid #fff;}
#subscribe-form .form-submit {
margin: 0 auto;
right: auto;
position: static;
}
#subscribe-form .form-field {
margin: 0 0 14px;
}
}
@media only screen and (max-width: 480px) {
h1 {
font-size: 30px;
}
h2{font-size: 25px;}
.countdown_section {
border: none;
padding: 20px 20px;
font-size: 13px;
text-align: center;
}
.countdown_amount {
font-size: 40px;
padding: 0 0 10px 0;
}
#counter{width: 30%; margin:0 auto;}
}
@media only screen and (max-width: 360px) {
h2{font-size: 22px;}
.countdown_section {
padding: 21px 26px 21px 15px;
}
.countdown_amount {
font-size: 36px;
}
}
Если проверить отображение страницы в браузере, то она должна выглядеть так:

Страница с применением CSS-стилей
JQuery
Обратите внимание, что у нас не отображается счетчик. Чтобы он появился, необходимо добавить следующий код перед закрывающим тегом body. Но до этого загрузите файл с плагином, указав путь к файлу.
<script type="text/javascript" src="js/jquery.countdown.min.js"></script>
Затем добавьте следующий код, чтобы отобразился наш счетчик. Вы можете изменить дату на счетчике в соответствии со своими пожеланиями. Достаточно указать нужную дату внутри параметра «launchdate».
$(document).ready(function() {
var launchdate = new Date(2014, 6 - 1, 7);
$('#counter').countdown({
until: launchdate
});
})(jQuery);
Заключение
Поздравляю! Вы только что создали классную страницу с таймером обратного отсчета. Данная страница позволит вам информировать своего посетителя о дате запуска вашего сайта и не потерять его.
Надеюсь, что Вам понравился данный урок. Оставляйте свои комментарии и вопросы, всегда рад ответить на них.

А как мне потом собирать адреса, которые на меня подписались? Где они остаются?
Для этого необходимо использовать php-обработчик, который будет собирать адреса в базу данных, либо подключить к этой форме сервис e-mail рассылок.
Ильдус, скажите а у вас нет материала как подключить этот самый php-обработчик?