3D CSS coin flip
Let's see a very very basic integration of the awesome "card flip" effect with simple CSS3 properties.
Feel free to use/share/contribute.
HTML
<button id="toggle">toggle</button>
<button id="lower">lower</button>
<button id="flip">flip</button>
<button id="dim">dim</button>
<div class="flip">
<div class="card">
<div class="face front">Heads</div>
<div class="face back">Tails</div>
</div>
</div>
CSS
body {
background: #ccc;
}
.flip {
-webkit-perspective: 800;
width: 200px;
height: 200px;
position: relative;
margin: 50px auto;
}
/*this specifies the transition effects*/
.flip .card.flipped {
-webkit-transform-origin: 50% 50%;
-webkit-transform: rotateY(-1980deg);
transition: all 1s ease 0s;
}
.flip .card.lowered {
/*-webkit-transform-origin: 0% 0%;*/
-webkit-transform: translate(0px, 200px);
transition: all 2s ease 0s;
}
/*flipped and lowered*/
.flip .card.flipped.lowered {
transition: all 1s ease 0s;
-webkit-transform: translate(0px, 200px) rotatex(-1980deg);
}
.flip .card.dim {
opacity: .25;
transition: all .25s ease 0s;
}
.flip .card {
width: 100%;
height: 100%;
-webkit-transform-style: preserve-3d;
-webkit-transition: 1s;
}
.flip .card .face {
width: 100%;
height: 100%;
position: absolute;
-webkit-backface-visibility: hidden;
z-index: 2;
font-family: Georgia;
font-size: 3em;
text-align: center;
line-height: 200px;
-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
}
.flip .card .front {
position: absolute;
z-index: 1;l
background: black;
color: red;
cursor: pointer;
}
.flip .card .back {
-webkit-transform: rotatex(180deg);
background: blue;
background: white;
color: black;
cursor: pointer;
}
button {
font-size: 48px;
}
}
JavaScript
$('.card').click(function () {
$(this).toggleClass('flipped lowered dim');
});
$('#toggle').click(function () {
$('.card').toggleClass('flipped lowered dim');
});
$('#lower').click(function () {
$('.card').toggleClass('lowered');
});
$('#flip').click(function () {
$('.card').toggleClass('flipped');
});
$('#dim').click(function () {
$('.card').toggleClass('dim');
});
$('.card').on('animationEnd',function(){
alert('animation end');
});