3 316 Скрипты / Slider

Параллакс слайдер на jQuery

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

HTML

Основной контейнер pxs_container содержит три подблока:
В первом pxs_bg содержаться ещё три DIV выполняющих роль трех различных прозрачных фоновых изображений, создающих как раз эффект объемности общей картины при листании слайдов. Во втором загрузчик и в третьем содержаться сами изображения, их миниатюры и стрелки навигации:

CSS

Ширина основного контейнера будет 100%, то есть на всю страницу. Позиционирование относительное:

.pxs_container{
    width:100%;
    height:420px;
    position:relative;
    border-top:7px solid #333;
    border-bottom:7px solid #333;
    overflow:hidden;
    -moz-box-shadow:0px 0px 7px #000;
    -webkit-box-shadow:0px 0px 7px #000;
    box-shadow:0px 0px 7px #000;
}

Оболочка .pxs_bg для трех DIV-ов содержащих фоны, будет содержать фон ввиде градиентного изображения:
.pxs_bg{
    background:transparent url(../images/bg.png) repeat top left;
}

У трех DIV-ов находящихся внутри .pxs_bg, будет такое оформление:
.pxs_bg div{
    position:absolute;
    top:0px;
    left:0px;
    height:420px;
    background-repeat:repeat;
    background-position:top left;
    background-color:transparent;
}

И наконец, каждый из трех DIV будет иметь своё фоновое изображение (ширина будет изменяться динамически с помощью jаvascript):
.pxs_bg .pxs_bg1{
    background-image:url(../images/bg1.png);
}
.pxs_bg .pxs_bg2{
    background-image:url(../images/bg2.png);
}
.pxs_bg .pxs_bg3{
    background-image:url(../images/bg3.png);
}

Оболочка содержащая полные изображения будет невидима изначально:
.pxs_slider_wrapper{
    display:none;
}

После того, как загрузятся все изображения, то оболочка будет показана вместе с изображениями.
Для списков сбрасываем стили:
.pxs_container ul{
    margin:0px;
    padding:0px;
    list-style:none;
}

У нас будет длинный список всех элементов li с шириной всего окна. Мы видим на экране слайдер, но на самом деле это один элемент li. Ширина элемента ul будет формироваться динамически, исходя из совокупной ширины всех li элементов. Свойство float:left для всех li, гарантирует, что все li элементы будут идти друг за другом:
ul.pxs_slider{
    position:absolute;
    left:0px;
    top:0px;
    height:420px;
}
ul.pxs_slider li{
    height:420px;
    float:left;
    position:relative;
}

В элементе li изображение будет отцентрировано с помощью margin свойства auto (слева и справа):
ul.pxs_slider li img{
    display:block;
    margin:35px auto 0px auto;
    -moz-box-shadow:0px 0px 7px #222;
    -webkit-box-shadow:0px 0px 7px #222;
    box-shadow:0px 0px 7px #222;
    border: 8px solid transparent;
    -moz-border-radius:4px;
    -webkit-border-radius:4px;
    border-radius:4px;
}

За счет прозрачной границы (transparent) получим эффект стекла вокруг изображения.

Список миниатюр позиционируем абсолютно. Left установим на 50%, для центрирования. Width и margin-left будут рассчитываться с помощью jаvascript:
ul.pxs_thumbnails{
    height:35px;
    position:absolute;
    top:320px;
    left:50%;
}
ul.pxs_thumbnails li{
    position:absolute;
    display:block;
}

Вокруг миниатюр добавляем белую границу и тень:
ul.pxs_thumbnails li img{
    border: 5px solid #FFFFFF;
    -moz-box-shadow:1px 1px 7px #555;
    -webkit-box-shadow:1px 1px 7px #555;
    box-shadow:1px 1px 7px #555;
    cursor:pointer;
    display:block;
    opacity:0.7;
}

Выбранная ил активная миниатюра будет видимой:
ul.pxs_thumbnails li.selected img{
    opacity:1.0;
}

Стили навигации такие:
.pxs_navigation span{
    position:absolute;
    width:30px;
    height:60px;
    -moz-box-shadow:0px 0px 2px #000;
    -webkit-box-shadow:0px 0px 2px #000;
    box-shadow:0px 0px 2px #000;
    top:145px;
    opacity:0.6;
    -moz-border-radius:4px;
    -webkit-border-radius:4px;
    border-radius:4px;
    cursor:pointer;
}
.pxs_navigation span:hover{
    opacity:0.9;
}

Для каждого элемента SPAN навигации добавим изображение стрелки:
.pxs_navigation span.pxs_prev{
    background:#000 url(../images/prev.png) no-repeat center center;
}
.pxs_navigation span.pxs_next{
    background:#000 url(../images/next.png) no-repeat center center;
}

И оформление загрузки:
.pxs_loading{
    color:#fff;
    font-size:20px;
    padding:15px 15px 15px 50px;
    position:absolute;
    background:#333 url(../images/ajax-loader.gif) no-repeat 10px 50%;
    -moz-border-radius:15px;
    -webkit-border-radius:15px;
    border-radius:15px;
    opacity:0.7;
    width:180px;
    position:absolute;
    top:150px;
    left:50%;
    margin-left:-90px;
}

jаvascript

Незабываем подключать jQuery библиотеку.
Основная идея в том, чтобы при анимации смены слайдов изменялся и фон слайдера, что позволит обеспечить эффект параллакса. Например, при нажатии на стрелку, для смены слайда, у нас анимируется значение свойства left для элемента ul на ширину li элемента. Анимируются также и фоновые изображения, причем самое ближайшее сдвинется на половину ширины экрана, чуть подальше на четверть, а еще дальше на одну восьмую. Это главный принцип параллакс эффекта.


Для инициализации слайдера добавляем такой скрипт:
$(function() {
    var $pxs_container    = $('#pxs_container');
    $pxs_container.parallaxSlider();
});

Дополнительные опции

    auto: время в секундах между листаниями. Если установить на 0, тогда автопроигрывание отключится.
    speed: скорость анимации между слайдами.
    easing: эффект затухания для анимации прокрутки.
    easingBg: эффект затухания для анимации фонов.
    circular: цикличность.
    thumbRotation: случайный поворот миниатюр.

Скачать 1346Загрузок 922,25 Kb
Демо

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи