Flip Card

by Raphael Quintao

HTML

<section class="container">
  <div id="card">
    <div class="side front">1</div>
    <div class="side back">2</div>
  </div>
</section>

<section id="options">
  <p>
    <button id="flip">Flip Card</button>
  </p>
</section>

CSS

.container {
  width: 200px;
  height: 260px;
  position: relative;
  margin: 0 auto 40px;
  border: 1px solid #CCC;
  perspective: 800px;
}

#card {
  width: 100%;
  height: 100%;
  position: absolute;
  -webkit-transition: -webkit-transform 1s;
  -moz-transition: -moz-transform 1s;
  -o-transition: -o-transform 1s;
  transition: transform 1s;
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -o-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

#card.flipped {
  -webkit-transform: rotateY( 180deg);
  -moz-transform: rotateY( 180deg);
  -o-transform: rotateY( 180deg);
  transform: rotateY( 180deg);
}

#card .side {
  display: block;
  height: 100%;
  width: 100%;
  line-height: 260px;
  color: white;
  text-align: center;
  font-weight: bold;
  font-size: 140px;
  position: absolute;
  backface-visibility: hidden;
  margin: 0;
}

#card .front {
  background: red;
  transform: rotateY( 180deg);
}

#card .back {
  background: blue;
  transform: rotateY( 180deg);
}

JavaScript

$('#flip').click(function() {
  $("#card").toggleClass('flipped');
  console.log("Toogle");
})