Интересная контактная форма
В данном уроке мы сделаем заготовку для контактной формы. Идея заключается в создании образа письма, которое будет выдвигаться из конверта при наведении курсора мыши.
Форма работае в браузерах, поддерживающих переходы CSS3. В IE конверт будет скрыт, хотя можно применить jQuery для воспроизводства подобного эффекта для старого браузера.
Разметка HTML
<div id='form_wrap'> <form> <p>Здравствуйте, уважаемый</p> <label for="email">Ваше сообщение : </label> <textarea name="message" value="Your Message" id="message" ></textarea> <p>С наилучшими пожеланиями,</p> <label for="name">Имя: </label> <input type="text" name="name" value="" id="name" /> <label for="email">E-mail: </label> <input type="text" name="email" value="" id="email" /> <input type="submit" name ="submit" value="Готово. Отправить!" /> </form> </div>
Принцип действия формы отображен на рисунке ниже. Элемент #form_wrap
позиционируется относительно (top:0), а конверт фиксируется у него внизу. Элемент form
позиционируется относительно (top:200px). Специальный слой перекрывает form
и #form_wrap
. При наведении курсора на элемент #form_wrap,
его высота и высота элемента form
увеличиваются на 350px, и одновременно изменяется свойство top элемента #form_wrap
до значения -200px.
Нам нужно подготовить две части конверта. Видимая часть над письмом (after.png) и нижняя часть под письмом (before.png).
CSS
Добавляем стили для элементов формы:
label { margin: 11px 20px 0 0; font-size: 16px; color: #b3aba1; text-transform: uppercase; text-shadow: 0px 1px 0px #fff; } input[type=text], textarea { font: 14px normal normal uppercase helvetica, arial, sans-serif; color: #7c7873;background:none; width: 380px; height: 36px; padding: 0px 10px; margin: 0 0 10px 0; border:1px solid #f8f5f1; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: inset 0px 0px 1px #726959; -webkit-box-shadow: inset 0px 0px 1px #b3a895; box-shadow: inset 0px 0px 1px #b3a895; } textarea { height: 80px; padding-top:14px;} textarea:focus, input[type=text]:focus {background:rgba(255,255,255,.35);} #form_wrap input[type=submit] { position:relative;font-family: 'YanoneKaffeesatzRegular'; font-size:24px; color: #7c7873;text-shadow:0 1px 0 #fff; width:100%; text-align:center; opacity:0; background:none; cursor: pointer; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } #form_wrap:hover input[type=submit] {z-index:1;opacity:1;} #form_wrap:hover input:hover[type=submit] {color:#435c70;}
Установим параметры перехода для form
и #form_wrap
.
-webkit-transition: all 1s ease-in-out .3s; -moz-transition: all 1s ease-in-out .3s; -o-transition: all 1s ease-in-out .3s; transition: all 1s ease-in-out .3s;
Затем добавляем трансформацию для элемента input[type=submit]
. Первый набор соответствует действиям, когда курсор мыши покидает элемнет #form_wrap
, а второй - когда курсор мыши заходит на элемент #form_wrap
. Нужно, чтобы элемент кнопки не появлялся до завершения трансформации элемента #form_wrap
. С другой стороны, кнопка должна пропадать немедленно, после потери фокуса ввода.
#form_wrap input[type=submit] { -webkit-transition: opacity 0.6s ease-in-out 0s; -moz-transition: opacity .6s ease-in-out 0s; -o-transition: opacity .6s ease-in-out 0s; transition: opacity .6s ease-in-out 0s; } #form_wrap:hover input[type=submit] { -webkit-transition: opacity .5s ease-in-out 1.3s; -moz-transition: opacity .5s ease-in-out 1.3s; -o-transition: opacity .5s ease-in-out 1.3s; transition: opacity .5s ease-in-out 1.3s; }
Заглушка для IE
Добавим код jQuery, чтобы эффект работал в IE. Трансформация будет немного отличаться.
<!--[if IE]><script> $(document).ready(function() { $("#form_wrap").addClass('hide'); $("#form_wrap").prepend( '<div id="before"></div>').append( '<div id="after"</div>'); $("#form_wrap").hover(function(){ $(this).stop(true, false).animate({ height : '836px', top : '-200px' }, 2000); $('form').stop(true, false).animate({ height : '580px' }, 2000, function(){ $('#form_wrap input[type=submit]').css({'z-index' : '1', 'opacity' : '1'})} ) }, function() { $('#form_wrap input[type=submit]').stop(true, true).css({ 'opacity' : '0'}) $(this).stop(true, false).animate({ height : '446px', top : '0px' }, 2000); $('form').stop(true, false).animate({ height : '200px'}, 2000) }) }) </script><![endif]-->
Установим стили для элементов #form_wrap.hide:after, #form_wrap.hide:before {display:none;}
и
#before {position:absolute; bottom:128px;left:0px; background:url('images/before.png'); width:530px;height: 316px;} #after {position:absolute; bottom:0px;left:0; background:url('images/after.png'); width:530px;height: 260px; }
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/ydEPyExQlN4/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Всегда храни верность своему начальнику - следующий, может быть еще хуже... |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.