Простой эффект параллакса для изображения
Бывают такие ситуации, когда необходимо реализовать достаточно простые эффекты, но из-за упущенных элементарных знаний возникают сложности. Так мы сегодня решили Вам рассказать и показать процесс реализации простого hover-эффекта для изображений с эффектом параллакса. Идея достаточно проста и банальна, у нас есть изображение, которое мы помещаем в рамку и скрываем края, при наведении курсора мыши изображение будет оживать и следовать за курсором, что придаст эффект "живого" изображения для ваших картинок.
Такой эффект можно использовать для отображения миниатюр на сайте. По умолчанию движение происходить не будет, но при движении будет происходить оживление изображений, что не оставит равнодушным Вашего читателя. И так, давайте приступим.
Шаг 1. HTML
Так как нам нужно все реализовать достаточно просто, при этом не задействовать лишних скриптов, мы решили все упростить по максимуму, так вышло и с разметкой, мы выводим общий класс эффекта.
Кроме этого вы указали вывод картинки через ссылку, для удобства, также добавили некоторое описание, чтобы дополнить демонстрационный пример.
Шаг 2. CSS
Cо стилями все также просто, нам необходимо все это стилизовать, для начала указываем общие параметры контейнера для нашего баннера,
Также мы указываем параметры для текстовой надписи, нам необходимо, чтобы она сохраняла свое позиционирование в не зависимости от движения изображения.
Шаг 3. JS
Последний шаг, как вы уже поняли, у нас будет оживление изображения и привязка его к движению курсора мыши, сделать это не так уже и сложно:
В результате мы получаем изображение с приятным эффектом, которое отлично дополнит Ваш сайт изюминкой и не оставит равнодушным любого читателя.
Вот и все. Готово!
Такой эффект можно использовать для отображения миниатюр на сайте. По умолчанию движение происходить не будет, но при движении будет происходить оживление изображений, что не оставит равнодушным Вашего читателя. И так, давайте приступим.
Шаг 1. HTML
Так как нам нужно все реализовать достаточно просто, при этом не задействовать лишних скриптов, мы решили все упростить по максимуму, так вышло и с разметкой, мы выводим общий класс эффекта.
1
2
3
Заголовок
4
Краткое описание.
5
6
7
Кроме этого вы указали вывод картинки через ссылку, для удобства, также добавили некоторое описание, чтобы дополнить демонстрационный пример.
Шаг 2. CSS
Cо стилями все также просто, нам необходимо все это стилизовать, для начала указываем общие параметры контейнера для нашего баннера,
1
#banner{
2
width: 840px;
3
height: 350px;
4
margin: 40px auto;
5
overflow: hidden;
6
position: relative;
7
text-align: center;
8
font-family: 'PT Sans', sans-serif;
9
z-index: 20;
10
}
11
#banner img{
12
position: absolute;
13
top: 0;
14
left: 0;
15
z-index: 5;
16
}
17
#intro{
18
position: absolute;
19
height: 100%;
20
padding: 100px 0;
21
z-index: 10;
22
text-align: center;
23
-moz-box-shadow: inset 0 0 30px #333333;
24
-webkit-box-shadow: inset 0 0 30px #333333;
25
box-shadow: inset 0 0 30px #333333;
26
}
27
#intro h1{
28
text-align: center;
29
width: 840px;
30
margin: auto;
31
font-family: 'Rokkitt', serif;
32
text-transform: uppercase;
33
color: #333333;
34
font-size: 28px;
35
}
Также мы указываем параметры для текстовой надписи, нам необходимо, чтобы она сохраняла свое позиционирование в не зависимости от движения изображения.
Шаг 3. JS
Последний шаг, как вы уже поняли, у нас будет оживление изображения и привязка его к движению курсора мыши, сделать это не так уже и сложно:
1
jQuery("#banner").mousemove(
2
function(e){
3
var offset = jQuery(this).offset();
4
var xPos = e.pageX - offset.left;
5
var yPos = e.pageY - offset.top;
6
var mouseXPercent = Math.round(xPos / jQuery(this).width() * 100);
7
var mouseYPercent = Math.round(yPos / jQuery(this).height() * 100);
8
jQuery(this).children('img').each(
9
function(){
10
var diffX = jQuery('#Parallax').width() - jQuery(this).width();
11
var diffY = jQuery('#Parallax').height() - jQuery(this).height();
12
var myX = diffX * (mouseXPercent / 1500);
13
var myY = diffY * (mouseYPercent / 1080);
14
var cssObj = {
15
'left': myX + 'px',
16
'top': myY + 'px'
17
}
18
jQuery(this).animate({left: myX, top: myY},{duration: 50, queue: false, easing: 'linear'});
19
}
20
);
21
}
22
);
В результате мы получаем изображение с приятным эффектом, которое отлично дополнит Ваш сайт изюминкой и не оставит равнодушным любого читателя.
Вот и все. Готово!