Слайдер с парящими изображениями на jQuery Слайдер с парящими изображениями на jQuery

 

На сайтах вы наверняка встречали слайдеры, которые создают эффект объемности, при этом они собраны по концепции с минимальным дизайном, а именно отсутствием фона и окантовок, это означает, что визуально изображения ни к чему не привязано. В данном уроке мы рассмотрим как создать замечательный слайдер с эффектом парящих изображений и небольшой анимацией, все это будет реализовано с помощью jquery и правил css3. Кроме этого мы добавим подписи, которые будут плавно появляться и исчезать.

 

ДЕМО
ИСХОДНИКИ

 

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

Шаг 1. HTML

HTML структура очень проста, нам нужно два DIV с изображениями для содержания и его описания. Для примера были взяты изображения тем для wordpress.

<div id="container">
<div id="itemlist">
<img src="images/busby.jpg" alt="Busby" id="busby">
<img src="images/gridly.jpg" alt="Gridly" id="gridly">
<!-- to n image -->
</div>
<div id="itemdescription">
<span data-for="busby">Busby Theme</span>
<span data-for="gridly">Gridly Theme</span>
<!-- to n description -->
</div>
</div>

Разметка достаточно простая. Каждый элемент содержит атрибут с описанием и id. Давайте перейдем к следующему шагу.

Шаг 2. CSS

Как вы заметили в демо наши изображения накладываются друг на друга, для этого нам необходимо указать отступ в -80px, следовательно отступ для следующего изображения будет -160px. Кроме этого нам необходимо указать общие параметры для контейнера:

#itemdescription {
position: relative;
width: 400px;
margin: 0 auto;
left: 6em;
top: 2em;
}

#itemdescription span {
display: none;
}

#itemlist {
display: block;
width: 400px;
margin: 3em auto;
position: relative;
transform-style: preserve-3d;
}

#itemlist img {
position: absolute;
cursor: pointer;
left: 0;
box-shadow: 0px 15px 50px rgba(0,0,0,0.4);
}

#itemlist img:hover {
top: -5px;
}

#itemlist img.item-0 {
z-index: 4;
transform: scale(1);

}

#itemlist img.item-1 {
z-index: 3;
left: -80px;
transform: scale(0.9);
}

#itemlist img.item-2 {
z-index: 2;
left: -160px;
transform: scale(0.8);
}

#itemlist img.item-3 {
z-index: 1;
left: -240px;
transform: scale(0.7);
}

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

.transition {
transition: 0.5s ease-out;
}

.show {
animation: show 1s linear;
}

@keyframes show{
25% {
left: -450px;
}

50% {
z-index: 5;
left: -500px;
transform: rotate3d(0,1,0,0deg);
}

70% {
z-index: 5;
left: -250px;
transform: rotate3d(0,1,0,180deg);
}

100% {
z-index: 5;
left: 0px;
transform: rotate3d(0,1,0,360deg);
}
}

Шаг 3. jQuery

В то время как вы нажимаете на желаемое изображение, стопка с картинками немного смещается назад, также мы добавим класс transition, для плавного движения:

//Перемещение элементов
window.setTimeout(function () {
for(var i = thisOrder; i >= 0; i--) {
//Изменить порядок, положение
movedItem = item.filter('[data-order=' + i + ']');
newOrder= parseInt(movedItem.attr('data-order')) + 1;
className = 'item-' + newOrder;
//Перемещение с переходом
movedItem.removeClass().addClass('transition ' + className).attr('data-order', newOrder);
//Удалить переход
item.on('transitionend webkitTransitionEnd MSTransitionEnd oTransitionEnd', function() {
item.removeClass('transition');
});
}
}, 500);

Вот и все. Готово!

Материал взят из зарубежного источника. И представлен исключительно в ознакомительных целях.


Top

🔖 Выбор по тегам ×

💌 Написать сообщение ×

Все поля обязательны для заполнения!