5 435 Скрипты / Gallery

Слайд эффект при наведении курсора

Красивый эффект с отображением картинок реализованный на jQuery. Основная идея состоит в том, что имеется определенная область сформированная из изображений, и при наведении курсора на картинку, происходит её смена новой с произвольным эффектом скольжения (различные варианты выезда слайда: сверху, снизу, слева, справа).

HTML

Создадим элемент DIV с class и ID "hs_container". Внутри разместим разнообразные области с изображениями. Первому изображению присвоим класс "hs_visible", который обеспечит его отображение поверх других изображений:

CSS

В файле стилей, мы определим все области содержащие изображения и их размеры. Поскольку делать мы их будем абсолютными, то определим также позиции для каждой области. Но сначала начнем с определения главного контейнера (container):

.hs_container{
 position:relative;
 width:902px;
 height:471px;
 overflow:hidden;
 clear:both;
 border:2px solid #fff;
 cursor:pointer;
 -moz-box-shadow:1px 1px 3px #222;
 -webkit-box-shadow:1px 1px 3px #222;
 box-shadow:1px 1px 3px #222;
}

Важным параметром является overflow:hidden, то есть изображения вышедшие за пределы контейнера при эффекте скольжении не будут показываться. Каждая область также будет иметь параметры hidden и absolute.

.hs_container .hs_area{
 position:absolute;
 overflow:hidden;
}

Позиционируем изображения внутри области и делаем их невидимыми.

.hs_area img{
 position:absolute;
 top:0px;
 left:0px;
 display:none;
}

Первое изображение будет показываться, поэтому мы присваиваем ему такой класс:

.hs_area img.hs_visible{
 display:block;
 z-index:9999;
}

И теперь определяем границы и расположение каждой области:

С CSS заакончили, теперь переходим к jаvascript.

JS

Чтобы увеличить количество используемых типов анимации, будем использовать плагин jQuery Easing, который не забываем подключить. Итак, давайте сначала определим некоторые переменные:

//custom animations to use
//in the transitions
var animations  = ['right','left','top','bottom','rightFade','leftFade','topFade','bottomFade'];
var total_anim  = animations.length;
//just change this one to one of your choice
var easeType  = 'swing';
//the speed of each transition
var animSpeed  = 450;
//caching
var $hs_container = $('#hs_container');
var $hs_areas  = $hs_container.find('.hs_area');

Когда мы перемещаем мышь над одной из областей будет происходить случайная анимация (из массива) текущего изображения, поэтому следующее изображение становится видимым. Мы будем использовать метку "over", чтобы знать,сможем мы анимировать конкретную область или нет (чтобы не было двух одновременных анимаций картинок).

Тема на форуме - http://pcvector.ru/t3080

Скачать 690Загрузок 227,12 Kb
Демо

Комментарии

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

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