Переходы в CSS3

Как и все новое, CSS3 принес новые возможности для Web-программистов и дизайнеров. В этом уроке мы рассмотрим основы использования переходов и анимации в CSS3. Для того, чтобы у Вас все отображалось правильно, я рекомендую использовать браузеры Chrome, Safari или Firefox.

Шаг №1

Для начала осуществим один простой метод – изменение цвета при наведении на него курсорам мыши.

			    a {
					color:#000; 
				} 
                a:hover { 
					color:#f00; 
				}
			    

Здесь мы изменили цвет текста при наведении на него. А теперь, немного CSS3. Сейчас создадим более гладкий вид постепенно затухающего цвета.

			    a{ 
                    color:#000; 
                     -webkit-transition:color 1s ease-in;
				} 
                a:hover{
					color:#f00;
				}
			    

Мы добавили свойства WebKit перехода. Обратите внимание, что префикс WebKit определяет то, что это будет работать только в браузерах на основе WebKit. Другие современные браузеры имеют свою собственную реализацию. Для того чтобы работало во всех браузерах нужно сделать следующим образом:

			    a { 
                    color:#000; 
                    -webkit-transition:color 1s ease-in;
                    -moz-transition:color 1s ease-in;
                    -o-transition:color 1s ease-in;
                    transition:color 1s ease-in;
                }
			    

Обратите внимание, что в этом уроке, мы будем использовать только осуществления в WebKit. После того как мы задали значение "color 1s ease-in". Эти три значения представляют:

- Свойство перехода;

- Продолжительность перехода;

- Тип перехода.

В нашем случае переход начнется, медленно ускоряясь в переходной период.

Шаг №2

Другим способом изменения мы можем использовать цвет фона.

			    input.ourInputBox:focus {
                    -webkit-transition:background-color 0.5s  linear; 
                    background:#CCC; 
                }
			    

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

Шаг №3

CSS переходы сейчас очень актуальны. Сейчас мы сделаем переход еще более красочным.

Для этого мы будем использовать переход нескольких свойств CSS с помощью CSS3.

			    a.thebg {
					color:#000; 
					background:#f00;  
					padding:5px; 
					-webkit-border-radius: 5px;
					-webkit-transition-property:color, background; 
					-webkit-transition-duration: 1s, 1s; 
					-webkit-transition-timing-function: linear,  ease-in;
			    }
			    a.thebg:hover  {
					color:#f00;
					background:#000;
			    }
			    

В этот раз, при наведении, цвет фона и текста изменился. Мы задаем оба этих свойства в нашем переходе. С помощью -webkit-transition-property разделим значения фона и цвета запятой.

-webkit-transition-property:color, background;

Затем мы установим продолжительность перехода:

-webkit-transition-duration:1s, 1s;

Эти значения используются в том же порядке, что и предыдущие.

Наконец, мы задали сроки выполнения и установили два различных значения связанные с цветом и фоном. Итак, мы установили изменение цвета и фона, для простоты, более одной секунды.

Шаг №4

Давайте сейчас создадим простой пример анимации.

Сначала создадим рамку указатели, и дадим ему позицию relative, чтобы мы так же могли позиционировать пункты.

			    #signpost{
                    width:60px;
                    height:196px;
                    position:relative;
                }
			    

Теперь разместим наши элементы на странице:

			    <div id="signpost">
                    <img  id="post" src="post.png">
                    <img  id="sign" src="sign.png">
                </div>
			    

Далее для id=post задаем Z-index равное 2, для того чтобы поместить его в самый вверх.

			    #post{
                    width:79px;
                    height:196px;
                    z-index:2;
                    position:relative;
                }
			    

Теперь работаем с id=sign.

				#sign {
                    height:46px;
                    width:80px;
                    position:absolute;
                    top:10;
                    left:60;
                    -webkit-transform-origin:0 0;
                    -webkit-transform: rotate(86deg);
                    z-index:1;
                    -webkit-transition:-webkit-transform  0.5s ease-in-out;
                }
				

Флажок поворачивается с помощью -webkit-transform: rotate(86deg) и позиционированием. Для того чтобы задать вращение вокруг точки, мы должны изменить значения transform origin на верхнее левое: 0,0.

При наведении курсора мыши -webkit-transform поставим значение равное 0,5s c параметром ease-in-out. После того как курсор будет убран, вернем знак в свое первичное положение.

			    #signpost:hover #sign{
                    -webkit-transform:rotate(0deg);
                }
			    

Мы делаем это при наведении на весь #signpost, а не просто на #sign.

Шаг№5

Теперь пришло время для создания непрерывного вращения. Начнем с создания двух кругов, которые поместим в тег div, как мы сделали в предыдущем шаге.

			    <div id="circles">
                    <img  src="outer.png" width="180" height="180"  class="outercircle"/>
                    <img  src="middle.png" width="90" height="90"  class="middlecircle"/>
                </div>
			    
				#circles{
                    width:180px; 
                    height:180px;
                    position:relative;
                }
                .outercircle{
                    width:180px; 
                    height:180px;
                    position:absolute;
                    z-index:1;
                    top:0: 
                    left:0;
                }
                .middlecircle{
                    width:90px; 
                    height:90px;
                    position:absolute;
                    z-index:3;
                    top:45px; 
                    left:45px;
                }
				

Теперь мы должны определиться с анимацией. Так как у нас два круга, нам нужно создать две анимации.

			    @-webkit-keyframes spin {   
                    from {   
                        -webkit-transform: rotate(0deg);   
                    }   
                    to {   
                        -webkit-transform: rotate(360deg);   
                    }   
                }   
                      
                @-webkit-keyframes spinrev {   
                    from {   
                        -webkit-transform: rotate(0deg);   
                    }   
                    to {   
                        -webkit-transform: rotate(-360deg);   
                     }   
                }
			    

Для анимации мы задаем имя, в данном случае – это ' spin' и ‘spinrev’. Затем создаем вращение от 0 до 360 градусов и используя webkit transform -360 градусов, для вращения в обратном порядке.

Приведем нашу анимацию в рабочий вид. Теперь она будет работать сразу после загрузки страницы.

			    #circles:hover .outercircle {
                    -webkit-animation-name:  spin;
                    -webkit-animation-iteration-count:  infinite;
                    -webkit-animation-timing-function:  linear;
                    -webkit-animation-duration:  10s;
                }
			    #circles:hover .middlecircle{
                    -webkit-animation-name:  spinrev;
                    -webkit-animation-iteration-count:  infinite;
                    -webkit-animation-timing-function:  linear;
                    -webkit-animation-duration:  5s;
                }
			    

Для внешнего круга определяем имя, которое мы задали ранее (-webkit-animation-name: spin;). Потом, задаем количество вращений (-webkit-animation-iteration-count: infinite;). В этом случае вращение будет бесконечным.

Затем для внутреннего круга устанавливаем функцию времени (-webkit-animation-timing-function: linear;) и продолжительность интервала вращения (-webkit-animation-duration: 10s; в нашем случае продолжительность будет 10 секунд) и количество полных вращений.

На этом, пожалуй, и все. Надеюсь, Вам понравился урок.

Просмотров: 2690      Опубликовал: Евгений Фединчик      Дата: 11.03.2010 19:10:21
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Css техники для новичков

    CSS - простая, мощная и легкая для использования техника. Но, несмотря на свою простоту, в ней скрывается немало возможностей. Если спросить любого дизайнера, то он скажет, что основной источник проблем с кодом и их решений скрывается в CSS.

    Создание объемной ленты с помощью CSS3

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

    Меню в стиле Mac на CSS3

    Сегодня мы предлагаем вам простой способ создать выпадающее меню в стиле Mac, используя самые известные ныне свойства CSS3: border-radius, box shadow и text-shadow.

    Создаем кнопку с помошью CSS3

    Существует огромное количество уроков по созданию красивых кнопок с помощью CSS. Как правило, вам сначала непременно надо изобразить ее в Photoshop, затем заверстать, используя изображение и какую-нибудь незамысловатую технику и, чтобы все стало совершенно неотразимым, добавить немного Javascript. Но теперь у нас есть CSS3, который на сегодняшний день поддерживается большинством браузеров и позволяет намного усовершенствовать и упростить данный процесс.

    Красивая полоса прокрутки сайта на CSS

    Стандартные полосы прокрутки (Scrollbar) на сайтах это скучно. Не так ли? Нет это совсем не так :), они (стандартные полосы прокрутки) не мазолят глаза, да и безобразного в них ничего нет. Но иногда под стиль сайта имеет смысл изменить стандартный Scrollbar. Не каждому сайту подойдет, так что не стоит этим злоупотреблять. Но все же знать как это делается я думаю нужно.

    Комментарии:

    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa