JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<section class="my-work-area">
<div class="my-item">
<img src="http://i.imgur.com/PAj4Ky9.jpg">
<div class="my-caption text-center">
<figure class="effect-hera">
<figcaption>
<p>
<a href="http://www.google.com" target="_blank"><i class="fa fa-moon-o"></i></a>
<a href="http://www.yahoo.com" target="_blank"><i class="fa fa-smile-o"></i></a>
<a href="http://www.apple.com" target="_blank"><i class="fa fa-star-o"></i></a>
<a href="http://www.microsoft.com" target="_blank"><i class="fa fa-sun-o"></i></a>
</p>
</figcaption>
</figure>
</div>
</div>
</section>
CSS
.my-work-area {
width: 100%;
max-width: 420px;
height: auto;
}
.my-item {
overflow: hidden;
position: relative;
}
.my-item img {
width: 100%;
-webkit-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
}
.my-item:hover img,
.my-item:active img {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
.my-item:hover .my-caption {
background: rgba(0, 0, 0, 0.75);
}
.my-item .my-caption {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
-webkit-transition: all 0.25s ease-in-out 0s;
transition: all 0.25s ease-in-out 0s;
}
.my-item .my-caption figure {
position: relative;
float: left;
overflow: hidden;
width: 100%;
height: 100%;
}
.my-item .my-caption figure figcaption {
padding: 2em;
font-size: 3em;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.my-item .my-caption figure figcaption::before,
.my-item .my-caption figure figcaption::after {
pointer-events: none;
}
.my-item .my-caption figure figcaption,
.my-item .my-caption figure figcaption > a {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.my-item .my-caption figure figcaption > a {
z-index: 1000;
text-indent: 200%;
white-space: nowrap;
font-size: 0;
opacity: 0;
}
.my-item .my-caption figure p {
margin: 0;
letter-spacing: 2px;
font-size: 60%;
}
figure.effect-hera {
background: transparent;
}
figure.effect-hera p {
position: absolute;
top: 50%;
left: 50%;
-webkit-transition: opacity 0.35s, transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
-webkit-transform: translate3d(-50%,-50%,0);
transform: translate3d(-50%,-50%,0);
-webkit-transform-origin: 50%;
transform-origin: 50%;
}
figure.effect-hera figcaption::before {
position: absolute;
top: 50%;
left: 50%;
content: '';
opacity: 0;
-webkit-transition: opacity 0.35s, transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
-webkit-transform: translate3d(-50%,-50%,0) rotate3d(0,0,1,-45deg)...