CSS3 эффект для изображений при наведении (hover)

Сентябрь 29, 2015   Александр Маврин   3 комментария

hover эффект для изображенийЗдравствуйте, друзья. Есть у меня для вас отличный эффект для изображений с применением спецификации CSS3 и псевдокласса hover.  При наведении курсора мыши на картинку, она превращается в 3D модель и, тем самым привлекает внимание. И что самое главное, создано это все без JS скриптов. А чтобы не тянуть кота за хвост предлагаю посмотреть пример.

Демо

Эффект объемного изображения

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

1
2
3
4
5
6
7
<div class="thumb">
   <!-- Изображение -->
   <a href="#">
	<!-- Надпись -->
        <span>Крутой Эффект При Наведении</span>
   </a>
</div>

В строковом параметре span будет появляться надпись с торца картинки. А вот и сам CSS код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
.thumb {
	width: 740px; height: 400px; margin: 70px auto;
	perspective: 1000px;
}
.thumb a {
	display: block; width: 100%; height: 100%;
	/*double layered BG for lighting effect*/
	background: 
		linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), 
		url("images/6.jpg");
	/*disabling the translucent black bg on the main image*/
	background-size: 0, cover;
	/*3d space for children*/
	transform-style: preserve-3d;
	transition: all 0.5s;
}
.thumb:hover a {transform: rotateX(80deg); transform-origin: bottom;}
/*bottom surface */
.thumb a:after {
	/*36px high element positioned at the bottom of the image*/
	content: ''; position: absolute; left: 0; bottom: 0; 
	width: 100%; height: 36px;
	/*inherit the main BG*/
	background: inherit; background-size: cover, cover;
	/*draw the BG bottom up*/
	background-position: bottom;
	/*rotate the surface 90deg on the bottom axis*/
	transform: rotateX(90deg); transform-origin: bottom;
}
/*label style*/
.thumb a span {
	color: white; text-transform: uppercase;
	position: absolute; top: 100%; left: 0; width: 100%;
	font: bold 12px/36px Arial; text-align: center;
	/*the rotation is a bit less than the bottom surface to avoid flickering*/
	transform: rotateX(-89.99deg); transform-origin: top;
	z-index: 1;
}
/*shadow*/
.thumb a:before {
	content: ''; position: absolute; top: 0; left: 0;
	width: 100%; height: 100%;
	background: rgba(0, 0, 0, 0.5); 
	box-shadow: 0 0 100px 50px rgba(0, 0, 0, 0.5);
	transition: all 0.5s; 
	/*by default the shadow will be almost flat, very transparent, scaled down with a large blur*/
	opacity: 0.15;
	transform: rotateX(95deg) translateZ(-80px) scale(0.75);
	transform-origin: bottom;
}
.thumb:hover a:before {
	opacity: 1;
	/*blurred effect using box shadow as filter: blur is not supported in all browsers*/
	box-shadow: 0 0 25px 25px rgba(0, 0, 0, 0.5);
	/*pushing the shadow down and scaling it down to size*/
	transform: rotateX(0) translateZ(-60px) scale(0.85);
}

На мой взгляд получилось прикольное изображение с 3д эффектом, но остается один вопрос: где можно его применять? Самым подходящим местом будет, я считаю, на одностраничниках, их задача как раз сфокусировать посетителя на каком-то объекте, а этот hover эффект для изображений подойдет как нельзя лучше. На основных сайтах, блогах им, конечно, не место. например у себя я бы не стал такое размещать. Красиво? Безусловно, но здесь не какое-нибудь портфолио, а в большей степени информационный контент. Поэтому не нужно вставлять это для того, что бы просто было туда, где это не совсем уместно. И в завершении предлагаю скачать папку со всеми файлами.

СКАЧАТЬ

Не стесняйтесь делиться записью в социальных сетях. Спасибо


3 комментария
  1. Neoptolem:

    Эффект красивый!
    Работает, только не видна картинка images/5
    Подскажите, плиз, начинающему))

    • Александр Маврин:

      Скорее всего прописан неправильный путь к картинке. Попробуйте написать абсолютный путь, у меня он такой:
      http://serblog.ru/demo/hover-image/images/5.jpg

      • Neoptolem:

        Ура, спасибо, появилась картинка!!
        Точно, следует прописыввать ссылку абсолютную.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *