Диагональное портфолио с вращением изображений

В данном уроке мы разберемся, как создать портфолио с вращением элементов по диагонали. С такой техникой можно построить интересный и выделяющийся интерфейс для сайта-визитки.

 

Разметка

Разметка должна быть минимальной настолько, насколько возможно. Нужно избегать дублирования элементов и соблюдать требования семантики.

<ul class="portfolio">
        <li><img src="/lessons/les1217/img/portfolio-1.jpg" alt="Image 1"></li>
        <li><img src="/lessons/les1217/img/portfolio-2.jpg" alt="Image 2"></li>
        <li class="feature"><img src="/lessons/les1217/img/portfolio-3.jpg" alt="Image 3"></li>
        <li><img src="/lessons/les1217/img/portfolio-4.jpg" alt="Image 4"></li>
        <li><img src="/lessons/les1217/img/portfolio-5.jpg" alt="Image 5"></li>
</ul>


Вот вся разметка, которая нужна для нашего урока. Это простой неупорядоченный список изображений для портфолио. Класс  “feature” применяется к элементу списка для выделения текущего активного изображения. Для нашего портфолио нужны только большие формы изображений,  для миниатюр будем использовать масштабирования CSS. В нашем примере используются изображения размером 600 x 300 px.

 

CSS

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

ul.portfolio{
    margin: 50px auto 0;
    -ms-transform:rotate(30deg);
    -webkit-transform:rotate(30deg);
    -moz-transform:rotate(30deg);
    width: 200px;
}

Мы вращаем весь список на 30 градусов по часовой стрелке и сдвигаем его вниз от верха документа. Это будет база для вращения. Теперь перейдем к определению отдельных пунктов списка и изображениям.

ul.portfolio li{
        border: 1px solid #999999;
        height: 100px;
        list-style:none;
        margin-left: 0;
        opacity: 0.5;
        -webkit-transition: all 0.5s ease-in;
        -moz-transition: all 0.5s ease-in;
        -o-transition: all 0.5s ease-in;
        width: 200px;
}
 
ul.portfolio li img{
        height: 100px;
        -webkit-transition: all 0.5s ease-in;
        -moz-transition: all 0.5s ease-in;
        -o-transition: all 0.5s ease-in;
        width: 200px;
}

Устанавливаем ограничения для элементов списка и изображений для масштабирования. Так как уменьшенные картинки будут располагаться вне фокуса внимания, установим для них прозрачность 0.5, чтобы активное изображение выделялось еще больше. Здесь также устанавливается основа для трансформаций. Префиксы  webkit, moz и o соответствуют определенным браузерам, в которых будет действовать наше портфолио. Свойство transition используется в сокращенном варианте. Устанавливаются значения для свойства, длительности и функции перехода. Значение свойства all означает, что трансформация будет проводиться для всех свойств, которые различаются у двух элементов. В нашем случае это будет касаться рамок, высоты, ширины, прозрачности и левого поля. Длительность определяет время перехода. В нашем случае все будет изменяться за полсекунды. Эффект перехода определяет функцию трансформации свойств от времени. Осталось определить свойства для активного элемента:

ul.portfolio li.feature{
        border: 5px solid #dddddd;
        -moz-box-shadow: 3px 3px 4px #222222;
        -webkit-box-shadow: 3px 3px 4px #222222;
        box-shadow: 3px 3px 4px #222222;
        height: 300px;
        margin-left: -200px;
        opacity: 1;
        position: relative;
        -ms-transform: rotate(-30deg);
        -webkit-transform: rotate(-30deg);
        -moz-transform: rotate(-30deg);
        width: 600px;
        z-index: 100;
}
 
ul.portfolio li.feature img{
        height: 300px;
        width: 600px;
}

Здесь проводится определение стилей для пункта с классом “feature”, чтобы изменить наследуемые свойства и создать другую конечную точку трансформации. Отрицательно значение поворота возвращает пункт списка в горизонтальное положение. Установка высокого значения свойства z-index помещает изображение выше всех остальных в списке. Также нужно установить относительное позиционирование. Мы также увеличиваем прозрачность и размер изображения.

Теперь наш список готов для действий.

 

Javascript

Настала очередь для программирования перемещений. Так как трансформации определены в CSS, то нам нужно подготовить совсем немного кода jQuery для полноценной работы портфолио. Наши трансформации зависят от класса feature, поэтому мы используем jQuery, чтобы переключать класс по нажатию кнопки мыши:

$(document).ready(function(){
       
        $('.portfolio li').click(function() {
               
                var new_feature = $(this);
               
                if (!new_feature.hasClass('feature')){
               
                        $('li.feature').removeClass('feature');
               
                        setTimeout(function(){
 
                                new_feature.addClass('feature');
 
                        }, 500);
                }
        });
});

Как только на пункте списка нажала кнопку мыши, мы первым делом проверяем, не является ли он активным в текущий момент. Если это новый пункт, то надо удалить класс feature со старого пункта. Это приведет к трансформации изображения - оно повернется и уменьшится, чтобы стать опять элементом структуры списка. Функция setTimeout служит для организации последовательных трансформаций, а не одновременных. Как только первое событие будет обработано, нажатие кнопки мыши на пункте li начнет другую трансформацию. Комбинация jQuery и CSS3 представляет собой  отличную комбинацию для творчества. Можно попробовать с модификацией других свойств пункта списка, чтобы добиться различных визуальных эффектов.


Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/VcEuM2K5AvM/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Диагональное портфолио с вращением изображений | | 2012-06-19 12:04:09 | | Статьи Web-мастеру | | В данном уроке мы разберемся, как создать портфолио с вращением элементов по диагонали. С такой техникой можно построить интересный и выделяющийся интерфейс для сайта-визитки. РазметкаРазметка должна | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: