Здравствуйте, друзья. Есть у меня для вас отличный эффект для изображений с применением спецификации CSS3 и псевдокласса hover. При наведении курсора мыши на картинку, она превращается в 3D модель и, тем самым привлекает внимание. И что самое главное, создано это все без JS скриптов. А чтобы не тянуть кота за хвост предлагаю посмотреть пример.
Я уже писал об анимации в и о возможностях использования CSS, но там говорилось скорее о базовых принципах, нежели о чем-то серьезном. Но здесь уже принципиальной новый уровень эффектов для изображений, которые можно реализовывать на сайтах, а о том, где именно, поговорим немного позже. HTML разметка будет такая:
1
2
3
4
5
6
7
<divclass="thumb"><!-- Изображение --><ahref="#"><!-- Надпись --><span>Крутой Эффект При Наведении</span></a></div>
<div class="thumb">
<!-- Изображение -->
<a href="#">
<!-- Надпись -->
<span>Крутой Эффект При Наведении</span>
</a>
</div>
В строковом параметре span будет появляться надпись с торца картинки. А вот и сам CSS код:
.thumb{width:740px;height:400px;margin:70pxauto;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:bold12px/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:00100px50pxrgba(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:0025px25pxrgba(0,0,0,0.5);/*pushing the shadow down and scaling it down to size*/transform: rotateX(0) translateZ(-60px)scale(0.85);}
.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 эффект для изображений подойдет как нельзя лучше. На основных сайтах, блогах им, конечно, не место. например у себя я бы не стал такое размещать. Красиво? Безусловно, но здесь не какое-нибудь портфолио, а в большей степени информационный контент. Поэтому не нужно вставлять это для того, что бы просто было туда, где это не совсем уместно. И в завершении предлагаю скачать папку со всеми файлами. Смотрите также 3D эффект при наведении на ссылку.
Эффект красивый!
Работает, только не видна картинка images/5
Подскажите, плиз, начинающему))
Скорее всего прописан неправильный путь к картинке. Попробуйте написать абсолютный путь, у меня он такой:
https://serblog.ru/demo/hover-image/images/5.jpg
Ура, спасибо, появилась картинка!!
Точно, следует прописыввать ссылку абсолютную.