Когда сайт ожидает запуска или находится на реконструкции, существует потребность уведомить посетителей сайта о скором открытии. И прекрасным решением этой проблемы является создание посадочной страницы с соответствующим уведомлением.
По мере развития современных инструментов веб-разработки, подобные страницы превратились из простых страниц с текстом в более интересные решения.
Создание подобной заглушки для сайта повышает уровень ожидания посетителей, тем самым создавая у них интерес. Помимо простого уведомления, также можно собрать информацию о заинтересованных пользователях посредством вставки форм подписки и обратной связи.
В этом уроке мы создадим именно такую заглушку для сайта, которая будет содержать форму подписки и таймер обратного отсчета, реализованный с помощью 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 и посмотреть его в браузере, то должна быть такая картина:
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; } }
Если проверить отображение страницы в браузере, то она должна выглядеть так:
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-обработчик?