JSFiddle - React, Tailwind, and code Playground
by Gaurav Singh
HTML
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<div class="c-services__item">
<div class="c-services__item__content">
<div class="c-services__item--front">
<img src="http://lorempixel.com/300/400/">
</div>
<div class="c-services__item--back">
back
</div>
</div>
</div>
<div class="c-services__item">
<div class="c-services__item__content">
<div class="c-services__item--front">
<img src="http://lorempixel.com/300/400/">
</div>
<div class="c-services__item--back">
back
</div>
</div>
</div>
<div class="c-services__item">
<div class="c-services__item__content">
<div class="c-services__item--front">
<img src="http://lorempixel.com/300/400/">
</div>
<div class="c-services__item--back">
back
</div>
</div>
</div>
<div class="c-services__item">
<div class="c-services__item__content">
<div class="c-services__item--front">
<img src="http://lorempixel.com/300/400/">
</div>
<div class="c-services__item--back">
back
</div>
</div>
</div>
<div class="c-services__item">
<div class="c-services__item__content">
<div class="c-services__item--front">
<img src="http://lorempixel.com/300/400/">
</div>
<div class="c-services__item--back">
back
</div>
</div>
</div>
<div class="c-services__item">
<div class="c-services__item__content">
<div class="c-services__item--front">
<img src="http://lorempixel.com/300/400/">
</div>
<div class="c-services__item--back">
back
</div>
</div>
</div>
CSS
img {
height: 100%;
width: auto;
}
.c-services__item__content {
height: 100%;
width: auto;
}
.c-services__item {
perspective: 1000px;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
-o-perspective: 1000px;
-ms-perspective: 1000px;
display: inline-block;
vertical-align: middle;
}
.c-services__item .c-services__item__content {
transition: 0.5s ease-out;
-webkit-transition: 0.5s ease-out;
-moz-transition: 0.5s ease-out;
-o-transition: 0.5s ease-out;
-ms-transition: 0.5s ease-out;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-o-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
backface-visibility: visible;
-webkit-backface-visibility: visible;
-moz-backface-visibility: visible;
-o-backface-visibility: visible;
-ms-backface-visibility: visible;
display: inline-block;
position: relative;
width: 200px;
height: 400px; // why do i have to set a specific height
}
.c-services__item.applyflip .c-services__item__content {
transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
}
.c-services__item .c-services__item__content .c-services__item--static {
transition: 0s linear 0.17s;
-webkit-transition: 0s linear 0.17s;
-moz-transition: 0s linear 0.17s;
-o-transition: 0s linear 0.17s;
-ms-transition: 0s linear 0.17s;
transform: rotateY(0deg);
-webkit-transform: rotateY(0deg);
-moz-transform: rotateY(0deg);
-o-transform: rotateY(0deg);
-ms-transform: rotateY(0deg);
text-align: center;
position: absolute;
top: 0;
left: 0;
//height:400px;
width: 100%;
}
.c-services__item.applyflip .c-services__item__content .c-services__item--static {
transition: 0s linear 0.17s;
-webkit-transition: 0s linear 0.17s;
-moz-transition: 0s linear 0.17s;
-o-transition: 0s linear 0.17s;
-ms-transition: 0s...
JavaScript
$('.c-services__item').hover(function() {
$(this).toggleClass('applyflip');
});