RAVI PATEL
RAVI PATEL

Reputation: 992

Card flip is not working for safari

I have written code for card flip.

Here, card flip rotation(3D rotation) is working fine in chrome, firebox, internet explorer but when i open it in safari, card flip rotation is not working perfectly.

In safari(version > 8.0.0), card is rotated but not with 3d animation.

Please let me know if any of you have any solutions.

Following is the code:

 $(".btn").click(function() {
   $("#card").toggleClass("flipped");
 });
.container {
  width: 200px;
  height: 260px;
  position: relative;
  perspective: 800px;
  -webkit-perspective: 800px;
  -o-perspective: 800px;
  -moz-perspective: 800px;
}
#card {
  width: 100%;
  height: 100%;
  position: absolute;
  transform-style: preserve-3d;
  transition: transform 1s;
  -webkit-transform-style: preserve-3d;
  -webkit-transition: transform 1s;
  -o-transform-style: preserve-3d;
  -o-transition: transform 1s;
  -moz-transform-style: preserve-3d;
  -moz-transition: transform 1s;
}
#card figure {
  margin: 0;
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -o-backface-visibility: hidden;
}
#card .front {
  background: red;
  font-size: 36px;
}
#card .back {
  font-size: 36px;
  background: blue;
  transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  -o-transform: rotateY(180deg);
}
#card.flipped {
  transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  -o-transform: rotateY(180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="container">
  <div id="card">
    <figure class="front">1</figure>
    <figure class="back">2</figure>
  </div>
</section>

<button class="btn"><span>Flip card</span>
</button>

Upvotes: 4

Views: 4104

Answers (1)

Vitorino fernandes
Vitorino fernandes

Reputation: 15951

you forgot to add prefix in webkit and other browsers

-webkit-transition: -webkit-transform 1s;

$(".btn").click(function() {
  $("#card").toggleClass("flipped");
});
.container {
  width: 200px;
  height: 260px;
  position: relative;
  perspective: 800px;
  -webkit-perspective: 800px;
  -o-perspective: 800px;
  -moz-perspective: 800px;
}
#card {
  width: 100%;
  height: 100%;
  position: absolute;
  transform-style: preserve-3d;
  transition: transform 1s;
  -webkit-transform-style: preserve-3d;
  -webkit-transition: -webkit-transform 1s;
  -o-transform-style: preserve-3d;
  -o-transition: -o-transform 1s;
  -moz-transform-style: preserve-3d;
  -moz-transition: -moz-transform 1s;
}
#card figure {
  margin: 0;
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -o-backface-visibility: hidden;
}
#card .front {
  background: red;
  font-size: 36px;
}
#card .back {
  font-size: 36px;
  background: blue;
  transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  -o-transform: rotateY(180deg);
}
#card.flipped {
  transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  -o-transform: rotateY(180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="container">
  <div id="card">
    <figure class="front">1</figure>
    <figure class="back">2</figure>
  </div>
</section>

<button class="btn"><span>Flip card</span>
</button>

Upvotes: 1

Related Questions