Всем привет! Долго искал простой способ плавно увеличить картинку при наведении на нее. Большинство способов описанных в интернете предлагают воспользоваться jQuery и т. п., что на мой взгляд немного излишне. Есть достаточно изящное решение с помощью CSS3 .
HTML
Для начало необходимо подготовить html разметку:
Подготавливаем изображения
<div class="zoom_img"><a href="#"><img src="images/img1.jpg" /></a></div> <div class="zoom_img"><a href="#"><img src="images/img2.jpg" /></a></div> <div class="zoom_img"><a href="#"><img src="images/img3.jpg" /></a></div>
Каждую картинку мы обернули в div который имеет класс zoom_img
CSS
Перейдем к стилям, для начала класс zoom_img:
.zoom_img {
overflow:hidden;
width:390px;
height:244px;
}
Размер блока должен быть равен размеру изображения, и необходимо добавить overflow:hidden; что бы ничего не выходило за размер блока, об этом чуть ниже.
.zoom_img img {
-moz-transition: all 1s ease-out;
-o-transition: all 1s ease-out;
-webkit-transition: all 1s ease-out;
}
.zoom_img img:hover{
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-o-transform: scale(1.1);
}
С помощью параметра transition и transform в CSS3 происходит анимация. Время анимации 1 секунда. scale(1.1) – указывает что картинка должна увеличится в 1.1 раза, если необходимо увеличить в два раза, необходимо поставить 2.
И вот тут то необходимо вернуться к параметру overflow:hidden; в классе .zoom_img. За счет того что за рамки div’а ничего не выходит, создается эффект что картинка приближается, если overflow:hidden; убрать, будет видно что картинка увеличивается в размерах.
На этом на сегодня все.


Эммм…
Я обошёл много форумов по анимации при наведении. Вот что я скажу. Я хочу представить очень легкую анимацию «поверх всего»- то есть картинка увеличивается и рядом с ней ничего не меняется.
CSS
/*Создаем блок любого названия*/
.test {
width: 300px; /*Указываем длину изображения*/
height: 170px; /*Указываем ширину изображения*/
transition: 0.3s; /*Указываем время увеличения картинки*/
}
/*Теперь создаем hover для блока*/
.test:hover {
-webkit-transform: scale(1.2); /*Указываем величину изображения при анимации*/
-ms-transform: scale(1.2); /*Указываем величину изображения при анимации*/
transform: scale(1.2); /*Указываем тип увеличения*/
}
HTML
/*Теперь пишем в HTML*/
/*Мы указали стандартную величину еще раз*/
Вот теперь всё!!
Наслаждайтесь)
PS. Все форумы предлагали скачать плагин. Вскоре решил сам по-думать. И создал очень простую анимацию.