Заходи
Гость

Хостинг

Статистика
Яндекс.Метрика Счетчик PR-CY.Rank
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Ccылки

Свежак

Главная » 2013 » Апрель » 12 » Форма входа с CSS 3D преобразованием
14:53
Форма входа с CSS 3D преобразованием

Форма входа с CSS 3D преобразованием

 

В этом уроке мы увидим, как можно использовать 3D преобразования, чтобы создать интересную форму входа.

Мы будем иметь две формы - логина и пароля, видимую с одной стороны. Нажатие на ссылку (ленты в примере), вызовет CSS3 вращения по оси Y, которое откроет другую часть формы эффектом переворота листа.

СМОТРЕТЬ ДЕМО                         СКАЧАТЬ ИСХОДНИК

 

Мы будем использовать JQuery для фиксирования кликов по ссылкам, и добовлять или удалять имя пользователя на элемент контейнера формы. С помощью CSS мы будем применять Y преобразования (горизонтальное вращение) в обеих формах, но с разницей в 180 градусов в зависимости от класса. Это позволит сделать формы появляющиеся на противоположных сторонах мнимой платформы.

Разметка

Мы нуждаемся в двух формах - войти и восстановить . Каждая форма будет иметь кнопку

отправки,  текст / пароль входа:

index.html

<div id="formContainer">

                <form id="login" method="post" action="./">

                               <a href="#" id="flipToRecover" class="flipLink">Forgot?</a>

                               <input type="text" name="loginEmail" id="loginEmail" placeholder="Email" />

                               <input type="password" name="loginPass" id="loginPass" placeholder="Password" />

                               <input type="submit" name="submit" value="Login" />

                </form>

                <form id="recover" method="post" action="./">

                               <a href="#" id="flipToLogin" class="flipLink">Forgot?</a>

                               <input type="text" name="recoverEmail" id="recoverEmail" placeholder="Your Email" />

                               <input type="submit" name="submit" value="Recover" />

                </form>

</div>

 

Обратите внимание, на идентификаторы элементов в форме. Мы будем использовать их широко в части CSS. Только одна из этих форм будет видна постоянно. Другие будут выявлены во время покадровой анимации. Каждая форма имеет flipLink якорь. Нажатие на эту кнопку переключения  в свою очередь вызывают CSS3 анимацию.

 

JQuery код

Первым важным шагом будет определение, поддерживает ли текущий браузер CSS3 3D-преобразования. Мы также будем использовать JQuery для фиксирования нажатий на кнопку якоря.

Вот код, который все это будет делать:

script.js

$(function(){

 

                // Checking for CSS 3D transformation support

                $.support.css3d = supportsCSS3D();

 

                var formContainer = $('#formContainer');

 

                // Listening for clicks on the ribbon links

                $('.flipLink').click(function(e){

 

                               // Flipping the forms

                               formContainer.toggleClass('flipped');

 

                               // If there is no CSS3 3D support, simply

                               // hide the login form (exposing the recover one)

                               if(!$.support.css3d){

                                               $('#login').toggle();

                               }

                               e.preventDefault();

                });

 

                formContainer.find('form').submit(function(e){

                               // Preventing form submissions. If you implement

                               // a backend, you will want to remove this code

                               e.preventDefault();

                });

 

                // A helper function that checks for the

                // support of the 3D CSS3 transformations.

                function supportsCSS3D() {

                               var props = [

                                               'perspectiveProperty', 'WebkitPerspective', 'MozPerspective'

                               ], testDom = document.createElement('a');

 

                               for(var i=0; i<props.length; i++){

                                               if(props[i] in testDom.style){

                                                               return true;

                                               }

                               }

 

                               return false;

                }

});

 

Теперь мы можем перейти к части CSS.

CSS

CSS будет обрабатывать все от представления формы и формы элементов, до анимационных эффектов  и переходов. Мы начнем со стилей форм контейнера.

styles.css

#formContainer{

                width:288px;

                height:321px;

                margin:0 auto;

                position:relative;

 

                -moz-perspective: 800px;

                -webkit-perspective: 800px;

                perspective: 800px;

}

Так же, ширина , высота , отступы и позиционирования , мы также устанавливаем точки видимости элемента. Это свойство придаст глубину сцены. Без него в анимации будут появляться пробелы (попробуйте отключить его, чтобы увидеть, что я имею в виду). Чем больше значение, тем дальше точка схода.

Дальше добавим  стилю сами формы.

#formContainer form{

                width:100%;

                height:100%;

                position:absolute;

                top:0;

                left:0;

 

                /* Enabling 3d space for the transforms */

                -moz-transform-style: preserve-3d;

                -webkit-transform-style: preserve-3d;

                transform-style: preserve-3d;

 

                /* When the forms are flipped, they will be hidden */

                -moz-backface-visibility: hidden;

                -webkit-backface-visibility: hidden;

                backface-visibility: hidden;

 

                /* Enabling a smooth animated transition */

                -moz-transition:0.8s;

                -webkit-transition:0.8s;

                transition:0.8s;

 

                /* Configure a keyframe animation for Firefox */

                -moz-animation: pulse 2s infinite;

 

                /* Configure it for Chrome and Safari */

                -webkit-animation: pulse 2s infinite;

}

 

#login{

                background:url('../img/login_form_bg.jpg') no-repeat;

                z-index:100;

}

 

#recover{

                background:url('../img/recover_form_bg.jpg') no-repeat;

                z-index:1;

                opacity:0;

 

                /* Rotating the recover password form by default */

                -moz-transform:rotateY(180deg);

                -webkit-transform:rotateY(180deg);

                transform:rotateY(180deg);

}

Мы сначала опишем общие стили, которые являются общими для обеих форм. После этого мы добавляем уникальные стили, которые отличают их друг от друга.

/* Firefox Keyframe Animation */

@-moz-keyframes pulse{

                0%{                        box-shadow:0 0 1px #008aff;}

                50%{      box-shadow:0 0 8px #008aff;}

                100%{   box-shadow:0 0 1px #008aff;}

}

 

/* Webkit keyframe animation */

@-webkit-keyframes pulse{

                0%{                        box-shadow:0 0 1px #008aff;}

                50%{      box-shadow:0 0 10px #008aff;}

                100%{   box-shadow:0 0 1px #008aff;}

}

Теперь давайте посмотрим, что происходит, когда мы нажали на ссылку, и перевернули форму классы добавляется в # formContainer :

#formContainer.flipped #login{

 

                opacity:0;

 

                /**

                 * Rotating the login form when the

                 * flipped class is added to the container

                 */

 

                -moz-transform:rotateY(-180deg);

                -webkit-transform:rotateY(-180deg);

                transform:rotateY(-180deg);

}

 

#formContainer.flipped #recover{

 

                opacity:1;

 

                /* Rotating the recover div into view */

                -moz-transform:rotateY(0deg);

                -webkit-transform:rotateY(0deg);

                transform:rotateY(0deg);

}

 

Готово!

СМОТРЕТЬ ДЕМО                         СКАЧАТЬ ИСХОДНИК

 

 

Ссылка на источник

Категория: HTML/CSS | Просмотров: 1148 | Добавил: Wrecker | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Статьи
[Прогараммирование]
Как работает CSS?
[Прогараммирование]
ЛЕКЦИЯ. Язык Pascal
[Прогараммирование]
Статический анализ: ошибки в медиаплеере и безглючная аська
[Устронение ошибок систем]
Устранение неполадок при возникновении (синего экрана) Blue Screen Of Death (BSOD) (2)
[Операционные системы]
Особенности применения технологий Lotus Domino и Notes в современных информационных системах
[Менеджмент]
Факторы микросреды организации
[Прогараммирование]
Разработка ПО с открытыми исходными текстами как особый вид прикладной науки
[Прогараммирование]
ПОДПРОГРАММЫ. ПРОЦЕДУРЫ И ФУНКЦИИ
[Прогараммирование]
Строковый тип данных
[Прогараммирование]
Подпрограммы

Категории
HTML/CSS [21]
jQuery/JS [36]
PHP [4]
Для Ucoz [38]

Популярный софт
Iron Kaspersky Internet Security 2015
Kaspersky Internet Security 2015
Iron Virtual DJ
Virtual DJ
Iron SoundForge 11
SoundForge 11
Iron Alcohol 120
Alcohol 120
Iron Norton Internet Security 2014
Norton Internet Security 2014
Iron Loaris Trojan Remover
Loaris Trojan Remover

Жми

Copyright MyCorp © 2024Конструктор сайтов - uCoz